1. Anwendungsszenarien Es gibt eine solche Anforderung, daher wurde ein System entwickelt. Wenn der Benutzer den Desktop verlässt oder für einen bestimmten Zeitraum nicht arbeitet, müssen alle geöffneten Seiten des Systems gesperrt werden, genau wie der Sperrbildschirm des Desktops. Erst nach erfolgreicher Eingabe des Passworts zur Überprüfung oder erneuter Anmeldung kann die Seite weiter bedient werden. Wenn die Seite aktualisiert wird, muss sie gesperrt bleiben. Genau wie auf dem Bild unten. Natürlich können Nutzer den Sperrbildschirm auch manuell auslösen. Ziel ist es, den willkürlichen Zugriff Dritter auf wichtige Inhalte des Systems zu verhindern. Wie also erreichen wir das? Der Effekt des 5s-Sperrbildschirms ist wie folgt: 2. Ideen
Es ist etwas verwirrend und muss geklärt werden. 3. Code-Implementierung Der folgende Code ist unvollständig, die HTML-Struktur fehlt und Sie können ihn frei verwenden. // app.vue Daten () { zurückkehren { Zeitüberschreitung: 5000, Timer: null, isLock: 'false' } }, montiert () { dieser.timer = setzeTimeout(dieses.lockPro, dieses.timeOut) // Stellen Sie die Vorgangszeit zum ersten Mal ein localStorage.setItem('moveTime', Date.now()) //Erster Beurteilungsstatus this.modalStatus() // Poll-Überwachungsstatus setInterval(this.modalStatus, 1000) // Auf Mausereignisse warten this.events() }, Methoden:{ Ereignisse() { fenster.onmousemove = () => { // console.log('Die Maus hat sich bewegt') wenn (!this.isLock) { localStorage.setItem('Verschiebezeit', Date.now()) this.clearLocaPro('weiter') } } }, modalStatus() { wenn (localStorage.getItem('isLock') === 'true') { // console.log('Bildschirm gesperrt') this.isLock = true dies.clearLocaPro() } anders { // console.log('Der Bildschirm ist derzeit nicht gesperrt') this.isLock = false this.clearLocaPro('weiter') } }, lockPro() { wenn (!dieses.timeOut) { localStorage.setItem('istLock', 'false') this.clearLocaPro('weiter') zurückkehren } wenn (Date.now() - localStorage.getItem('moveTime') < this.timeOut) { localStorage.setItem('istLock', 'false') this.clearLocaPro('weiter') } anders { localStorage.setItem('istLock', 'wahr') dies.clearLocaPro() } }, clearLocaPro(status) { wenn(dieser.timer){ Zeitüberschreitung löschen(dieser.Timer) } wenn (Status === 'weiter') { dieser.timer = setzeTimeout(dieses.lockPro, dieses.timeOut) } }, // Manuelle Sperre handleLock(){ dies.clearLocaPro() localStorage.setItem('istLock', 'wahr') }, // Passwort entsperren unlock(){ localStorage.removeItem('isLock') localStorage.setItem('Verschiebezeit', Date.now()) this.clearLocaPro('weiter') }, ... // Vergessen Sie nicht, isLock beim Abmelden zu löschen } Dies ist das Ende dieses Artikels über die Implementierung einer automatischen Bildschirmsperre mit js. Weitere Informationen zur automatischen Bildschirmsperre mit js finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: MySQL SQL-Anweisung zum Suchen doppelter Daten basierend auf einem oder mehreren Feldern
>>: So installieren Sie Golang unter Linux
Wenn Threads gleichzeitig ausgeführt werden, müss...
Inhaltsverzeichnis 1. Nutzen Sie Komponenten sinn...
Vorwort NFS (Network File System) bedeutet Netzwe...
Inhaltsverzeichnis 1. Was ist eine Veranstaltung?...
Umfeld Host-IP 192.168.0.9 Docker-Version 19.03.2...
Vorwort Komponenten sind etwas, das wir sehr häuf...
MQTT-Protokoll MQTT (Message Queuing Telemetry Tr...
# Passen Sie die Startpriorität der VMware-Festpl...
Charakter Dezimal Zeichennummer Entitätsname --- ...
Detaillierte Erklärung zum Erstellen geplanter My...
Kürzlich habe ich auf einem öffentlichen Konto ei...
Informationen zum Deinstallieren der zuvor instal...
Das MySQL-Slow-Log ist ein Informationstyp, auf d...
Oder schreiben Sie den Installationsvorgang selbs...
Ich hatte schon vor Neujahr an dem Projekt gearbe...