我已经在循环中评估了这些内容,因此我可以运行一些任务onbeforeunload
。我想知道是否有办法检测简单的页面重新加载,以便我可以继续并忽略它。有什么想法吗?
编辑:我措辞不好,所以我会再试一次。退出弹出窗口工作正常,但我不希望它在用户只是重新加载页面时触发。有没有办法解决这个问题?我知道它的UI很差,不是我的决定。
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';
}
答案 0 :(得分:0)
我怀疑这甚至是可能的。也许有一些核心编码技巧,或巧妙使用cookie。但我无法想出你为什么要这样做的原因。