我有这样一个JavaScript,我用一个书签:
window.location="URL"
document.getElementById('username-id').value = 'User'
document.getElementById('pwd-id').value = 'pass'
doLogin();
问题是,JavaScript的,只要它击中URL停止。如何使它进入一个网页,并执行脚本?
任何帮助将不胜感激。
不幸的是你的书签将无法正常工作。新页面的window.location
结果装载的变化 - 在该网页上,而不必首先出现在文档不能执行任何JavaScript。
所需的操作可以通过浏览器扩展,例如可以实现的Greasemonkey脚本,执行所指定的Javascript在网页加载的页面上。
我不建议浏览器扩展 - 它们允许不可信的代码在受信任的代码的上下文中运行。如果您有加载一个页面,并自动输入您的用户ID和密码,浏览器扩展,什么可以发布这些凭证到一个恶意站点停止了吗?只有你,只有你已经仔细阅读源代码。
为了解决这个问题上面我已经添加书签小在我的浏览器收藏夹栏需要两次点击:1.单击导航到该位置2.点击填写表格
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();
}
祝好运!
如果你控制你加载页面,我会考虑通过该数据作为片段和处理从页面。像window.location="URL#username=...;password=..."
,比在页面片段分析数据和做任何你需要它。然而,在这种特定情况下它不是一个好主意,因为该密码将被保存在浏览历史记录。
如果要执行从装在同一个域(和相同的方案)作为目标位置的网页书签,您可以通过加载到一个iframe做到这一点(在某种程度上)。
javascript:
document.body.innerHTML = '<iframe src="http://example.com/page2.html" onload="this.contentWindow.location.assign(`javascript:
document.body.style.textTransform = \'uppercase\'; /* put code here */
void(0);`); this.onload = null;" width=100% height=100%>';
注意多行字符串的易读性使用反引号的。该onload = null
是为了防止无限循环,这些位置被分配JavaScript代码后onload
会火。
(仅在浏览器进行测试。)
试着用window.onload
事件包装你的代码。
window.location = "URL"; window.onload = function() {
document.getElementById('username-id').value = 'User'
document.getElementById('pwd-id').value = 'pass'
doLogin();
}
由于上述解决方案不起作用,你仍然应该能够写一个简单的浏览器扩展为您解决问题。这很容易:选择您使用的浏览器,并按照文件。这仅仅是这样做的方式。