我正在尝试在Tampermonkey中创建一个基本脚本。我想访问一个URL,等待1秒然后访问另一个URL:
$(document).ready(function() {
document.location.href = 'http://www.google.com';
setTimeout(doStuff ,1000);
});
function doStuff(){
document.location.href = 'http://www.stackoverflow.com';
}
似乎永远不会调用函数doStuff
。每当我运行脚本时,我都会被重定向到google.com,但不会被重定向到stackoverflow.com。
答案 0 :(得分:9)
JavaScript执行环境仅持续页面的生命周期。
当您设置location.href
时,您离开了页面,因此任何待处理的JavaScript都不会运行,因为它的环境不再存在。
答案 1 :(得分:1)
您可以使用iframe来实现目标这将满足您的需求:
<body>
<iframe style='width: 100%; height: 100%;' id='myframe' />
</body>
然后将您的document.location.href
更改为document.getElementById('myframe').src = 'URL HERE';
这样,用户绝不会在技术上离开您的屏幕,您可以更改他们正在查看的页面。