我可以不在书签中使用setTimeout()
吗?
这有效: javascript: document.location="mysite.com"; 警报(“测试”); 无效;
这不会: javascript: document.location="mysite.com"; var t=setTimeout(函数() { 警报(“测试”); }, 10000); 无效;
这是为什么?
最佳答案
每次更改页面时,整个 javascript 上下文都会被销毁并重新创建(这是出于安全原因以及会造成上下文 hell 的事实)
document.location="mysite.com";
有效地改变页面的上下文,破坏任何剩下的 javascript 引用(在你的情况下是超时)。新页面开始加载时,您的页面就有了新的上下文。
要使超时生效,您需要一个需要 10 秒以上响应的服务器(基于您的第二个参数 10000 或将超时减少到 10 毫秒左右)。
document.location="mysite.com";
var t=setTimeout(function () { alert("test"); }, 10);
你为什么需要这个?
关于javascript - 无法使用 setTimout 在小书签中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21197994/