由于一般原因,我必须将一些javascript放入某些导航栏链接的HREF属性中以执行更多操作。部分操作需要延迟执行,因此我使用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属性进行此类操作?特别是返回的号码对我来说很神奇。
答案 0 :(得分:1)
将它包装在匿名函数中似乎解决了这个问题:
<a href="javascript:(function(){alert('do anything');window.setTimeout(function(){alert('do anything else');},1111);})()">Login</a>
返回并在FF页面上显示的数字是window.setTimeout的返回值,它是每次调用时递增的计数器,以便您跟踪计时器。
答案 1 :(得分:1)
这是正确的方法......
<a href="javascript: alert('do anything');
window.setTimeout(
function() {
alert('do anything else');
}, 1111
);
void 0">
Login
</a>