Pregunta

Estoy utilizando JavaScript en un bookmarklet que pueblan los elementos de formulario en una página web:

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

Esto funciona. Sin embargo lo que me gustaría es para crear un bookmarklet para que se abra la página de destino, y rellena los valores allí; Sin embargo parece que onces se carga la página, otros códigos de JavaScript no se ejecutan. Por lo tanto, el siguiente no funciona.

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;

También he experimentado con setTimeout para retrasar la ejecución de mi código, pero que no funcionó.

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

¿Cómo puedo cargar mi guión una vez que sepa la página de destino está totalmente cargada?

¿Fue útil?

Solución

Greasemonkey está integrado en Chrome, sonidos como si estuviera tratando de reinventar la rueda. Instalación de un archivo JS y se ejecutará cuando se carga la página.

Otros consejos

Yo no uso Greasemonkey como regla personal, al código para los navegadores que no se debe utilizar. Bookmarklets son un enfoque mínimo común denominador para automatizar los inicios de sesión cuando el sistema se bloquea y no permitirán la instalación de Greasemonkey, Roboform, etc.

he codificado un montón de bookmarklets de inicio de sesión y pensó en lo que estamos tratando de hacer: agregar una secuencia de comandos que se ejecuta tras cargar una página. Vine a esta página buscando la solución, pero ahora me alegro de que no funciona.

Piense en las implicaciones de seguridad de este. Si fuera posible eco de pulsaciones de teclas para una página cargada, también sería capaz de escuchar las pulsaciones del teclado y enviarlos a otro lugar - muy mala.

Si desea automatizar los inicios de sesión, trate de un patrón bookmarklet como esto (los saltos de línea 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();
     } 
    }

Al hacer clic en el enlace una vez que se lleva a la página signon.aspx. Una vez que el campo nombre de usuario está disponible en la página cargada, haga clic en el mismo enlace de nuevo va a llenar el formulario y enviarlo.

Así que es una más clic de lo que esperaba, pero si pones el bookmarklet en una barra de herramientas que es casi ningún retraso. Buena suerte!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top