2011-08-18 21 views
13

tengo un javascript esta manera, he usado un bookmarklet:Javascript bookmarklet ir a la URL y ejecutar

window.location="URL" 
document.getElementById('username-id').value = 'User' 
document.getElementById('pwd-id').value = 'pass' 
doLogin(); 

El problema es que Javascript se detiene tan pronto como llega a la URL. ¿Cómo hacer que vaya a una página y ejecutar un script?

Cualquier ayuda sería muy apreciada.

Respuesta

5

Lamentablemente, su marcador de libros no funcionará. Cambio de window.location resultados carga de la nueva página: no puede ejecutar ningún Javascript en esa página sin tener el documento presente primero.

La acción deseada se puede lograr con extensiones de navegador, p. Script de Greasemonkey, que ejecuta Javascript especificado en la página al cargar la página.

1

Intente envolver su código con el evento window.onload.

window.location = "URL"; window.onload = function() { 
document.getElementById('username-id').value = 'User' 
document.getElementById('pwd-id').value = 'pass' 
doLogin(); 
} 

A medida que la solución anterior no funciona, aún debe ser capaz de escribir una simple extensión del navegador para resolver su problema. Es fácil: elija el navegador que usa y siga la documentación. Esta es la única manera de hacer eso.

+0

Ya lo intenté, todavía no tuve suerte. El script simplemente va a la página y se detiene. – Temikus

+0

Luego, necesita escribir una extensión de navegador para resolver su problema, porque los bookmarklets no son tan potentes en este caso. –

+0

no funcionará. nueva página = nueva secuencia de comandos. no se puede ejecutar un script en una página diferente en la que está declarado. –

1

Si controla la página que está cargando, consideraría pasar esos datos como el fragmento y manejarlos desde la página. Algo así como window.location="URL#username=...;password=...", que analiza los datos del fragmento en la página y hace lo que necesita con él. Sin embargo, en este caso específico no es una buena idea, ya que la contraseña se guardará en el historial de navegación.

13

No recomiendo las extensiones del navegador: permiten que el código que no es de confianza se ejecute en el contexto del código de confianza. Si tiene una extensión de navegador que carga una página y automáticamente ingresa su identificación de usuario y contraseña, ¿qué impide que se publiquen esas credenciales en un sitio malicioso? Solo usted, y solo si ha leído cuidadosamente el código fuente.

Para resolver el problema anterior he añadido bookmarklets a la barra de favoritos en el navegador que requieren dos clics: 1. Haga clic para navegar a la ubicación 2. Haga clic para llenar el formulario de

javascript: 
var L='http://mysite.com/'; 
if(location!=L)location=L; 
else{ 
    document.getElementById('username-id').value='User'; 
    document.getElementById('pwd-id').value = 'pass'; 
    document.close(); 
    doLogin(); 
} 

¡Buena suerte!

Cuestiones relacionadas