Domanda

Sto utilizzando JavaScript in un bookmarklet per elementi del modulo popolamento su un sito web:

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

Questo funziona. Tuttavia ciò che vorrei creare un bookmarklet in modo che si apra la pagina di destinazione, e popola i valori là; Tuttavia sembra che onces la pagina viene caricata, altri codici JavaScript non vengono eseguiti. Così, il seguente non funziona.

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;

Ho anche sperimentato con setTimeout per ritardare l'esecuzione del mio codice, ma che non ha funzionato.

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);

Come posso caricare il mio script, una volta so che la pagina di destinazione è a pieno carico?

È stato utile?

Soluzione

Greasemonkey è integrato in Chrome, suona come si sta cercando di reinventare la ruota. Installare un file JS e verrà eseguito al caricamento della pagina.

Altri suggerimenti

Non faccio uso di GreaseMonkey di regola personale, per il codice per i browser che non dovrebbero usarlo. Bookmarklets sono un approccio minimo comune denominatore per automatizzare gli accessi quando il sistema è bloccato e non permetterà l'installazione di Greasemonkey, Roboform, ecc

ho codificato un sacco di bookmarklet d'accesso e di pensiero su ciò che si sta cercando di fare: aggiungere un po 'script che viene eseguito dopo caricamento di una pagina. Sono venuto a questa pagina cercando la soluzione, ma ora sono contento che non funziona.

Pensate alle implicazioni di sicurezza di questo. Se fosse possibile eco sequenze di tasti per una pagina caricata, sarebbe anche in grado di ascoltare le battiture e inviarli altrove - molto male.

Se si desidera automatizzare gli accessi, provare un modello come questo bookmarklet (interruzioni di riga remove):

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();
     } 
    }

Cliccando il link una volta che si porta alla pagina signon.aspx. Una volta che il campo nome utente è disponibile sulla pagina caricata, cliccando di nuovo lo stesso link riempirà il modulo e inviarlo.

Quindi è un altro click di quanto si sperava, ma se si mette il bookmarklet sulla barra degli strumenti non è certo alcun ritardo. Buona fortuna!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top