我想设置超时javascript。
如果浏览器停留在浏览器上,它会重定向到fallbackLink。
如果浏览器失去焦点,它会使超时失效并且不会重定向到fallbackLink
这是我的剧本。
<script>
(function(){
var fallbackLink = '<?=$info['failed_url']?>'+window.location.search+window.location.hash;
var isiOS = navigator.userAgent.match('iPad') || navigator.userAgent.match('iPhone'),
isAndroid = navigator.userAgent.match('Android');
if (isiOS) {
document.getElementById('loader').src = '<?=$info['scheme']?>://'+window.location.search+window.location.hash;
}
var countdown = window.setTimeout(function (){
window.location.replace(fallbackLink);
}, 1000);
window.addEventListener("blur", function(){
window.clearTimeout(countdown)
}, false);
})();
</script>
即使浏览器没有焦点,它也会重定向。
当屏幕不关注网页浏览器时,我需要停止重定向。
谢谢。
答案 0 :(得分:0)
显然,在blur
个对象上处理window
事件的唯一方法是使用window.onblur
。
您可以尝试让旧处理程序执行此操作:
var concatFunctions = function(fn1, fn2){
return function(){
var args = Array.prototype.slice.call(arguments, 0);
try{
fn1.apply(this, args);
} catch(err) { console.error(err); }
fn2.apply(this, args);
};
};
window.onblur = concatFunction(window.onblur, function(){
// do your stuff
});