Wird Fenster.addEventListener("load", function(), false); warten für die Felder werden automatisch gefüllt mit den browser?
Ich bin momentan dabei ein GreaseMonkey-Skript, das das auto-login auf eine Seite so lange, wie der Benutzer gespeichert hat, Ihren Benutzernamen und Kennwort im browser. Es ist ziemlich einfach, es wird nur überprüft, um sicherzustellen, dass das Feld Benutzername und das Passwort-Feld nicht leer ist, und dann klickt er auf den login-button automatisch.
Jedes jetzt und dann ich lief in ein Problem, wo es gar nicht mehr anmelden. Die Seite geladen und saß nur da. Ich nahm an, es war einfach, weil die Seite nicht vollständig geladen, wenn die überprüfung von Benutzername und Kennwort in den entsprechenden Feldern gemacht wurden.
Da ich dies nur Hinzugefügt, um mein Skript.
window.addEventListener("load", Login(), false);
Meine Frage ist... Wird dieses eigentlich warten, bis der browser die auto-füllen diese Felder aus, bevor Sie versuchen, anmelden oder ist die Seite laden und die browser-füllen diese Felder aus 2 verschiedenen Aktionen?
InformationsquelleAutor RandomPrecision | 2012-09-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weil es keinen standard wie die automatisch gespeicherten Formen der Arbeit, würde ich einen timer einrichten auf
setTimeout()
Ähm ... ich war dumm. Aktuelle code tut schlechte Dinge, wenn die person, die versucht, geben Sie Ihre Benutzerinformationen ein.
Ungetestet, quick code geschrieben:
Versuch 2:
Wegen der setTimeout es nicht sperren, bis der browser. Es kann verbrennen ein paar Zyklen während es sitzt auf der Seite, aber unter der Annahme, dass Sie nicht sitzen auf diese Seite für immer sollte es nicht so schlimm sein. Wenn Sie sind besorgt über brennen durch Ressourcen, die von einem mobilen Gerät, könnte Sie in einen Zähler und nur Prüfung X Anzahl der mal. Man könnte auch deaktivieren Sie den code, wenn das Dokument den Fokus verliert. Ich verließ das Zeug aus Gründen der Einfachheit.
Danke für die Erklärung und den code. Dies funktionieren wird. Danke.
Wenn das nicht funktioniert, lass es mich wissen. Userscripts sind eine meiner Spezialitäten.
InformationsquelleAutor Jeremy J Starcher
Meinten Sie auf Referenz
Login
anstatt sofort ausführen?Ihr Weg führt
Login
vor das Fenster geladen wird.Hmm.. ich dachte Fenster.addEventListener("load", mit dem Login(), false); warten Sie, bis die Seite zu laden, führen Sie dann die Funktion angegeben.
wird die Funktion ausgeführt, dann einen Wert zurückgeben.
Login
ist eine Funktionsreferenz, die aufgerufen wird, später.Ahh ich sehe, was du sagst. So, indem Sie die () - es läuft sofort die Funktion, sondern dass er mit nur den Namen der Funktion, ruft es die Funktion, wenn es fertig ist?
Genau. Funktion Referenzen sind ein wichtiger Bestandteil der Javascript-Einstellung. Dies wird verwirrend, weil dieser code wird auch Arbeit:
window.addEventListener("load", "Login()", false);
Durch senden einer Zeichenkette statt einer Funktionsreferenz, die Javascript-engine tatsächlich läuft dies alles übereval
und führt es über eine Javascript-COMPILER, damit es überhaupt funktioniert. Viel cruddy Beispiele verwenden Sie code wie das, und es macht es sehr verwirrend für Anfänger.InformationsquelleAutor meder omuraliev