ust*_*tun 3 javascript bookmarklet settimeout form-fields
我在书签中使用JavaScript来填充网站上的表单元素:
javascript:var f = document.forms[0];
f.getElementsByTagName('input')[0].value = 'myname';
f.getElementsByTagName('input')[1].value = 'mypassword';
f.getElementsByTagName('input')[2].click
Run Code Online (Sandbox Code Playgroud)
这有效.然而,我想创建的是一个bookmarklet,以便它打开目标页面,并在那里填充值; 然而,似乎加载了页面,其他JavaScript代码不会被执行.所以,以下不起作用.
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;
Run Code Online (Sandbox Code Playgroud)
我还尝试使用setTimeout来延迟代码的执行,但这不起作用.
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);
Run Code Online (Sandbox Code Playgroud)
一旦我知道目标页面已满载,我该如何加载我的脚本?
小智 8
我不使用GreaseMonkey作为个人规则来代码不应该使用它的浏览器.当您的系统被锁定并且不允许安装Greasemonkey,Roboform等时,Bookmarklets是一种自动登录的最小公分母方法.
我编写了很多登录bookmarklet并考虑了你要做的事情:添加一些在页面加载后执行的脚本.我来到这个页面寻找解决方案,但现在我很高兴它不起作用.
想想这个的安全含义.如果可以将键击回应到加载的页面,它也可以听到击键并将它们发送到其他地方 - 非常糟糕.
如果要自动登录,请尝试这样的书签模式(删除换行符):
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();
}
}
Run Code Online (Sandbox Code Playgroud)
单击该链接一次会转到signon.aspx页面.一旦加载页面上的用户名字段可用,再次单击相同的链接将填写表单并提交.
所以它比您希望的还要多一点,但如果您将书签放在工具栏上,那几乎没有任何延迟.祝好运!
| 归档时间: |
|
| 查看次数: |
9988 次 |
| 最近记录: |