在书签中使用JS setTimeout

时间:2012-07-06 11:13:31

标签: javascript bookmarklet

我正在尝试在firefox中的bookmarklet中运行一些JS代码。以下是一些证明要点的基本代码:

window.setTimeout(function(){alert('i ran');},1000);

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

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

谢谢!

2 个答案:

答案 0 :(得分:5)

尝试以下方法:

javascript:(window.setTimeout(function() { alert('i ran'); }, 1000));void(0);

答案 1 :(得分:2)

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

setTimeout调用始终返回计时器的数字。要解决此问题,您可以附加void(0);类似纪元或我喜欢的内容,将其包装在IIFE中:

(function() {
    window.setTimeout( function() {alert('i ran');}, 1000 );
})();