小编ego*_*gon的帖子

Google Chrome上的setTimeout()出现了奇怪的问题

我在这里搜索并找到了一个快速的解决方案,当用户在页面上空闲时调用一个动作.它基本上适用于所有浏览器.

但是当我在页面上使用警报或确认对话框时,Google Chrome上会出现奇怪的问题.

警报或确认框消失后(按下"确定","取消"或"交叉"),空闲功能意外工作.

  • 在框中确认或警告框消失后,从链接的onclick,我得到'3秒通过'框立即

在FF,IE和Chrome上测试(最新).它只发生在Chrome上.

我的代码在这里:http: //jsbin.com/ifule3

  window.onload = idleTimer;
  function idleTimer() {
    var idleDuration;
    document.onmousemove = idleReset;
    function  idleReset() {
      if (idleDuration) {
        clearTimeout(idleDuration);
        idleDuration = 0;
      }
      idleDuration = setTimeout(function() {
        alert('3 seconds passed.');
      }, 3000)
    }
  };

<a onclick="if(confirm( '?' )) { alert('Ok Pressed.') } else { return false; };">First Link!</a>
<a onclick="alert('test');" >Second Link!</a>
Run Code Online (Sandbox Code Playgroud)

看来我的解释还不够:/

我用jQuery改变了代码;

jQuery(document).ready(function() {
    var idleDuration;
    jQuery(document).mousemove(function() {
        if (idleDuration) {
            clearTimeout(idleDuration);
            idleDuration = 0;
        }

        idleDuration = setTimeout(function() …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome settimeout

8
推荐指数
1
解决办法
9362
查看次数

标签 统计

google-chrome ×1

javascript ×1

settimeout ×1