Frage

Ich bin mit JavaScript in einem Bookmarklet zu bevölFormularElemente auf einer Website:

javascript:var f = document.forms[0];
f.getElementsByTagName('input')[0].value = 'myname';
f.getElementsByTagName('input')[1].value = 'mypassword';
f.getElementsByTagName('input')[2].click

Das funktioniert. Aber was würde ich erstellen möchte, ist ein Bookmarklet, so dass es die Zielseite geöffnet wird, und füllt die Werte dort; jedoch scheint es, dass onces die Seite geladen ist, können andere JavaScript-Codes werden nicht ausgeführt. Also, folgende nicht funktioniert.

javascript:window.location("mywebsite");var f = document.forms[0];
f.getElementsByTagName('input')[0].value = 'myname';
f.getElementsByTagName('input')[1].value = 'mypassword';
f.getElementsByTagName('input')[2].click;

Ich habe auch mit setTimeout zu verzögern, um die Ausführung meines Codes experimentiert, aber das hat nicht funktioniert.

javascript:var f = document.forms[0];setTimeout("f.getElementsByTagName('input')[0].value = 'myname';f.getElementsByTagName('input')[1].value = 'mypassword';f.getElementsByTagName('input')[2].click;",1000);

Wie kann ich mein Skript geladen werden, sobald ich die Zielseite weiß, ist voll geladen?

War es hilfreich?

Lösung

Grease in Chrome integriert ist, klingt wie Sie versuchen, das Rad neu zu erfinden. Installieren Sie eine JS-Datei und es wird ausgeführt, wenn die Seite geladen wird.

Andere Tipps

Ich verwende Greasemonkey nicht als persönliche Regel, um Code für Browser, die es nicht verwenden sollten. Bookmarklets sind kleinsten gemeinsamen Nenner Ansatz Logins zu automatisieren, wenn Ihr System nach unten verriegelt und können nicht von Greasemonkey installieren, Roboform etc.

Ich habe eine Menge von Login Bookmarklets codiert und dachte darüber nach, was Sie versuchen zu tun: ein Skript hinzufügen, die nach dem Laden einer Seite ausgeführt wird. Ich kam zu dieser Seite für die Lösung suchen, aber jetzt bin ich froh, dass es nicht funktioniert.

Denken Sie über die Auswirkungen auf die Sicherheit dieser. Wenn es zu Echotastenanschlägen auf eine geladene Seite möglich wäre, würde es auch in der Lage sein, um Tastenanschläge zu hören und sie an anderer Stelle senden - sehr schlecht.

Wenn Sie Logins automatisieren möchten, versuchen Sie ein Bookmarklet Muster wie diese (Entfernen Zeilenumbrüche):

javascript:
    u='my_username';
    p='my_password';
    l='https://my_server/signon.aspx'; 
    if(location!=l)location=l;
    else{
     g=document.getElementById; 
     ue=(g('username') || g('userid') || g('login_name'));
     if(ue){
      ue.value=u;
      pe=(g('password') || g('pw') || g('pin'));
      pe.value = p;
      b=(g('submit_button') || g('signon_button') || g('login_button'));
      document.close();
      if(b)b.click();
     } 
    }

Durch Klicken auf den Link einmal gelangen Sie auf die signon.aspx Seite. Sobald das Feld Benutzername ist auf der geladenen Seite zur Verfügung, den gleichen Link erneut wird das Formular ausfüllen und abschicken.

So ist es ein weiteres Klicken Sie, als Sie gehofft, aber wenn man das Bookmarklet auf einer Symbolleiste legen es ist kaum eine Verzögerung. Viel Glück!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top