visibilitychange
事件来解决,而不是像下面这样处理 blur
事件。document.addEventListener("visibilitychange", function() {
//Change your view here
});
更多关于这里的细节。请注意,也有特定于浏览器的事件。
"visibilitychange"
"msvisibilitychange"
"webkitvisibilitychange"
如果您希望处理用户在浏览器外单击但仍保持网站可见时的情况,可以使用blur
事件处理。
但现在,需要特别处理“启动应用程序弹出窗口”,它也会模糊窗口,但不会触发任何事件以进行处理。
我们可以快速解决这个问题。
这个想法基于以下两种行为:
zoommtg://
开头的URL来启动本机应用程序。onclick
事件在onblur
事件之前触发。因此,在click
事件上引入一个标志将有助于我们处理此弹出窗口。
changeViewFlag=true;
window.onblur=function(event){
if(changeViewFlag==true)
{
//Change your view here
}
changeViewFlag=true;
}
window.onclick=function(event){
if(event.target.href!=null &&
event.target.href.split("://").length>1 &&
["http","https"].indexOf(event.target.href.split("://")[0])==-1)
{
changeViewFlag=false;
}
}