【发布时间】:2014-07-25 18:21:17
【问题描述】:
我有这些 for in 循环来评估事物,所以我可以运行一些任务 onbeforeunload。我想知道是否有办法检测简单的页面重新加载,以便我可以继续并忽略它。有什么想法吗?
编辑:我的措辞很糟糕,所以我会再试一次。退出弹出窗口工作正常,但我不希望它在用户简单地重新加载页面时触发。有没有办法解决这个问题?我知道它糟糕的用户界面,而不是我的决定。
var __redirect_to = 'https://www.someplace.com';
var _tags = ['button', 'input', 'a'],
_els,
_i,
_i2;
for( _i in _tags ) {
_els = document.getElementsByTagName(_tags[_i]);
for(_i2 in _els) {
if( (_tags[_i] == 'input' && _els[_i2].type != 'button'
&& _els[_i2].type != 'submit' && _els[_i2].type != 'image')
|| _els[_i2].target == '_blank')
continue;
_els[_i2].onclick = function() {
window.onbeforeunload = function(){ };
}
} // for in loop
} // for in loop
window.onbeforeunload = function() {
setTimeout(function() {
window.onbeforeunload = function() { };
setTimeout(function() {
document.location.href = __redirect_to;
}, 500);
}, 5);
return 'Please -STAY ON THE PAGE- to take a brief survey';
}
【问题讨论】:
-
您想在页面加载/重新加载时保留您的 javascript?没有。
-
当页面被重新加载时,JavaScript 执行停止并从头重新开始。我不认为这是可以改变的。
标签: javascript jquery for-in-loop