Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firefox上javascript链接中的window.setTimeout无法正常工作_Javascript_Html_Firefox_Hyperlink - Fatal编程技术网

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

Firefox上javascript链接中的window.setTimeout无法正常工作,javascript,html,firefox,hyperlink,Javascript,Html,Firefox,Hyperlink,由于一般原因,我不得不在一些导航栏链接的HREF属性中添加一些javascript来执行更多操作。部分操作需要延迟执行,因此我使用的是window.setTimeout 以下是一个示例: <a href="javascript:alert('do anything');window.setTimeout(function(){alert('do anything else');},1111);">Login</a> 在Google Chrome中,这与预期的一样,但

由于一般原因,我不得不在一些导航栏链接的HREF属性中添加一些javascript来执行更多操作。部分操作需要延迟执行,因此我使用的是
window.setTimeout

以下是一个示例:

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

在Google Chrome中,这与预期的一样,但在Firefox上,当调用
window.setTimeout
时,它会重定向到一个新的空页面,其中只包含一个随机数

预览:


为什么会发生这种情况,以及我如何避免这种情况,并仍然使用HREF属性进行此类操作?特别是,返回的数字对我来说很神奇。

将其包装在匿名函数中似乎可以修复它:

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


在FF中返回并显示在页面上的数字是window.setTimeout的返回值,它是一个计数器,每次调用时都会递增,以便跟踪计时器。

将其包装在匿名函数中似乎可以解决此问题:

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


在FF中返回并显示在页面上的数字是window.setTimeout的返回值,它是一个计数器,每次调用时递增,以允许您跟踪计时器。

以下是正确的方法

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


以下是正确的方法

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


当您想要访问窗口对象中的函数时,您不需要写入
窗口
,它们总是可访问的。您不需要写入
窗口
当您想要访问窗口对象中的函数时,它们总是可访问的欢迎使用StackOverflow,谢谢,这很有效。你选择了正确的问题,应该得到这个代表:)欢迎来到StackOverflow,谢谢你,这很有效。你选择了正确的问题,应该得到这个代表:)