我的问题实际上是关于如何终止已经加载的重定向。
我在页面打开之间设置了 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);
杀死它
除此之外:使用 document.ready() 或 onload ,以防止自己陷入疯狂的赛车状况。
关于javascript - 如果单击某些 UI 元素,则终止定时延迟函数 "setTimeout redirecting to page",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4802974/