Firefox中的javascript链接中的window.setTimeout无法正常工作
问题描述:
由于通用原因,我必须在某些导航栏链接的HREF属性中添加一些JavaScript以执行一些更多操作。部分操作需要延迟执行,因此我使用的是window.setTimeout
。Firefox中的javascript链接中的window.setTimeout无法正常工作
这里有一个例子:
<a href="javascript:alert('do anything');window.setTimeout(function(){alert('do anything else');},1111);">Login</a>
在谷歌浏览器这就像预期,但在Firefox浏览器重定向到包含只有当window.setTimeout
称为随机数的新的空白页面。
前瞻:http://jsbin.com/rekosahute
为什么发生这种情况,我该如何避免这种情况,仍然使用这种行动HREF属性?特别是返回的数字对我来说很神奇。
答
在一个匿名函数进行包装,似乎解决它:
<a href="javascript:(function(){alert('do anything');window.setTimeout(function(){alert('do anything else');},1111);})()">Login</a>
即返回和FF在页面上显示的数字,是window.setTimeout的返回值,这是一个计数器递增每次它被称为,让你跟踪定时器。
+0
欢迎的StackOverflow感谢你,这个工程。你选择了正确的问题,值得代表。 :) – modiX
答
这是正确的方式...
<a href="javascript: alert('do anything');
window.setTimeout(
function() {
alert('do anything else');
}, 1111
);
void 0">
Login
</a>
当您要访问的窗口对象功能,你不需要写'window',他们总是入店 –