当浏览器选项卡未聚焦时,我想更改我的 View 。我用了window.onblur
事件来处理这种情况,但我要处理一个用例。
当启动应用程序确认框出现时,窗口会触发模糊事件,但用户仍在页面中,因此我不想更改页面上的 View 。只有当用户切换不同的窗口或选项卡时,我才应该更改 View 。
启动应用程序确认框示例
我已经搜索了启动应用程序确认的事件以及窗口、导航器和文档对象中的对象,但我没有找到任何相关的对象、函数或事件。我也在 mdn 中搜索了特定的 API 来实现这一点,但我找不到任何解决这个问题的方法。
如果您知道有关启动确认框的任何文档,请分享。我将不胜感激任何可以从另一个 Angular 解决我的用例的帮助。
最佳答案
这可以通过处理 visibilitychange
来解决事件而不是 blur
如下。
document.addEventListener("visibilitychange", function() {
//Change your view here
});
更多详情请访问 here .请注意,也有特定于浏览器的事件。"visibilitychange"
"msvisibilitychange"
"webkitvisibilitychange"
以防万一,您还想处理用户点击浏览器之外的情况,同时保持网站可见。拉手blur
而是事件。但是现在,“启动应用程序弹出”也会使窗口模糊,要专门处理。它不会触发任何要处理的事件
我们可以快速解决它。
这个想法基于以下两种行为,
zoommtg://
开头的 url启动 native 应用程序。 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;
}
}
关于javascript - 如何使用 javascript 处理启动应用程序确认框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63352291/