我正在尝试在 Firefox 的书签中运行一些 JS 代码。这里有一些基本的代码来证明这一点:
window.setTimeout(function() {alert('我跑');}, 1000 );
当我在其中运行带有 setTimeout 的代码时,我将整个页面替换为通常记录在控制台中的计数器值。
有没有办法捕捉这个输出并阻止这种情况发生?
谢谢!
我正在尝试在 Firefox 的书签中运行一些 JS 代码。这里有一些基本的代码来证明这一点:
window.setTimeout(function() {alert('我跑');}, 1000 );
当我在其中运行带有 setTimeout 的代码时,我将整个页面替换为通常记录在控制台中的计数器值。
有没有办法捕捉这个输出并阻止这种情况发生?
谢谢!
尝试以下操作:
javascript:(window.setTimeout(function() { alert('i ran'); }, 1000));void(0);
当您javascript:
在地址栏中使用该协议时(这是所有小书签所做的),浏览器会执行document.write
任何返回值(如果它是真实的)。
调用总是返回一个setTimeout
计时器的数字。要解决这个问题,您可以附加一个void(0);
类似的时代,或者像我喜欢做的那样,将它包装在一个IIFE中:
(function() {
window.setTimeout( function() {alert('i ran');}, 1000 );
})();