javascript - Firefox 上的 javascript 链接中的 window.setTimeout 无法正常工作

标签 javascript html firefox hyperlink

由于一般原因,我必须将一些 JavaScript 放入某些导航栏链接的 HREF 属性中才能执行更多操作。部分操作需要延迟执行,因此我使用 window.setTimeout

这是一个示例:

<a href="javascript:alert('do anything');window.setTimeout(function(){alert('do anything else');},1111);">Login</a>

在 Google Chrome 中,这按预期工作,但在 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 的返回值,它是一个每次调用时都会递增的计数器,以便您跟踪计时器。

关于javascript - Firefox 上的 javascript 链接中的 window.setTimeout 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38686627/

相关文章:

c++ - 解密 Firefox 密码数据库

javascript - 在除第一个元素之外的所有元素上应用悬停

javascript - 检查表单中的文本是否正确,如果正确,则转到另一页

css - Safari 中的边距与 Chrome 和 Firefox 中的边距截然不同

JavaScript/jQuery : Use 'this' Object on Success

javascript - 将 getUserMedia 流式传输到 Icecast 服务器?

javascript - Angular Route Guard - 没有正确重定向到登录页面

JavaScript。等待嵌套的获取 promise

javascript - insideHTML 不打印。 (Javascript)

cocoa - 如何在 Mac 上以编程方式读取 Chrome 和 Firefox 的缓存?