0

我正在尝试在 Firefox 的书签中运行一些 JS 代码。这里有一些基本的代码来证明这一点:

window.setTimeout(function() {alert('我跑');}, 1000 );

当我在其中运行带有 setTimeout 的代码时,我将整个页面替换为通常记录在控制台中的计数器值。

有没有办法捕捉这个输出并阻止这种情况发生?

谢谢!

4

2 回答 2

5

尝试以下操作:

javascript:(window.setTimeout(function() { alert('i ran'); }, 1000));void(0);
于 2012-07-06T11:20:59.337 回答
2

当您javascript:在地址栏中使用该协议时(这是所有小书签所做的),浏览器会执行document.write任何返回值(如果它是真实的)。

调用总是返回一个setTimeout计时器的数字。要解决这个问题,您可以附加一个void(0);类似的时代,或者像我喜欢做的那样,将它包装在一个IIFE中:

(function() {
    window.setTimeout( function() {alert('i ran');}, 1000 );
})();
于 2012-07-06T11:53:55.830 回答