1

我正在尝试在 Tampermonkey 中创建一个基本脚本。我想访问一个 URL,等待 1 秒,然后访问另一个:

$(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。

4

2 回答 2

9

JavaScript 执行环境仅在页面的生命周期内持续存在。

当你设置location.href你离开页面时,任何挂起的 JavaScript 都不会运行,因为它的环境不再存在。

于 2013-08-15T18:12:38.597 回答
1

您可以使用 iframe 来实现您的目标这将满足您的需求:

<body>
  <iframe style='width: 100%; height: 100%;' id='myframe' />
</body>

然后将您的更改document.location.hrefdocument.getElementById('myframe').src = 'URL HERE';

这样,用户在技术上永远不会离开您的屏幕,您可以更改他们正在查看的页面。

于 2013-08-15T18:16:49.160 回答