javascript - 如果单击某些 UI 元素,则终止定时延迟函数 "setTimeout redirecting to page"

标签 javascript jquery redirect settimeout

我的问题实际上是关于如何终止已经加载的重定向。

我在页面打开之间设置了 10 秒延迟,然后才到达目的地:

var strUrl = /*from query string, or somewhere else..*/

window.onload = function()
{ 
  window.setTimeout('redirect(strUrl)', 10000);
}
function redirect(strUrl)
{
  document.location=strUrl;
}

现在在 HTML 正文中,我有一些 UI 元素、2 个按钮(继续、书签)、1 个复选框(不再显示,..)

类似于:

<body onOrientationChange="smartOrientation();">

  <div id="img_logo">
    <img src="#">  
  </div>

  <div id="txt">
    <p>
      ...blabla...
    </p>   
  </div>

  <div id="btn_bookmark">
    <a href=""  
        class="button green" 
        name="name" 
        type="submit" 
        value="Bookmark">Bookmark
    </a>
  </div>

  <!-- checkboxes,..etc -->

</body>

现在我想要的是始终激活 setTimeout 重定向,但如果在那 10 秒内。用户单击复选框或书签按钮,我希望它中断/停止。

伪:

onload: setTimeOut(URL,10sec); - 1,..2,..3,..

监听器:if(#div1 || #div2 || ..#divN) 被点击? ->立即STOP/BREAK setTimeout(杀掉10秒炸弹)

ps(边Q): 我使用 jquery,并在 dom.ready() 之后设置 onload,因为 dom.ready 总是比 onload 快一点。会因此而产生种族问题吗?

最佳答案

在变量中声明超时:

var t = window.setTimeout('redirect(strUrl)', 10000);

然后使用该变量

clearTimeout(t);

杀死它

more here

除此之外:使用 document.ready() 或 onload ,以防止自己陷入疯狂的赛车状况。

关于javascript - 如果单击某些 UI 元素,则终止定时延迟函数 "setTimeout redirecting to page",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4802974/

相关文章:

javascript - 如何使用 innerHTML 更新大小为 X 的数组?

javascript - JQuery 插件和原型(prototype),公开方法

javascript - 使用纯 jQuery 即时替换 contenteditable 中的文本

ruby-on-rails - 如何使用 RSpec 测试一个 URL 是否重定向到另一个 URL?

php - 如何重定向整个站点和除我的 IP 地址以外的所有流量?

redirect - 如何将 IIS 服务器中的特定端口重定向到其他端口

javascript - 如何在最后加载$scope.$?

javascript - 如何使动画仅在可见时工作

HTML 上的 Javascript 输入和输出

jquery - 如何使侧边栏延伸到页脚上方 50px?