Estoy tratando de crear un bookmarklet para abrir una página web, completar las credenciales y hacer clic en iniciar sesión de una sola vez. Aquí están los bookmarklets necesarios:
Para abrir una página web:
javascript:location.href='http://www.unt.edu'Para credenciales e inicio de sesión:
javascript:(function(){var d=document;s=d.querySelector;s.call(d,'input[name*=email]').value='YOUREMAIL@company.com'; s.call(d,'input[name*=pass]').value='SECRETPASSWORDHERE';s.call(d,'button[id*=login],input[type=button][id*=login],.btn-login').click(); }())¿Es posible combinar ambos teniendo en cuenta el comportamiento asíncrono de abrir la página web?
Puede combinar esto en un bookmarklet, pero tendrá que hacer clic dos veces. El primer clic abrirá un sitio web y el siguiente hará el inicio de sesión.
javascript: (() => { const url = 'https://stackoverflow.com/users/login'; if (location.href !== url) return (location.href = url); document.querySelector('input#email').value = 'EMAIL'; document.querySelector('input#password').value = 'PASSWORD'; document.querySelector('button#submit-button').click(); })();Considere usar un script de usuario en su lugar, que se ejecutará automáticamente al cargar la página. Configure el @includes del script de usuario para que se ejecute en http://www.unt.edu , luego configure el JS del script de usuario al contenido de su bookmarklet actual:
var d=document;s=d.querySelector;s.call(d,'input[name*=email]').value='YOUREMAIL@company.com'; s.call(d,'input[name*=pass]').value='SECRETPASSWORDHERE';s.call(d,'button[id*=login],input[type=button][id*=login],.btn-login').click(); }()(aunque recomendaría separarlo en líneas separadas para facilitar la lectura y el mantenimiento)
Y luego use un marcador simple (no un bookmarklet) para http://www.unt.edu . De esta manera, cada vez que haga clic en el marcador, la página se cargará, y cuando la página se cargue, el script de usuario que inicia sesión se ejecutará automáticamente.