javascript - 如何使用 javascript 处理启动应用程序确认框

标签 javascript dom-events

当浏览器选项卡未聚焦时,我想更改我的 View 。我用了window.onblur事件来处理这种情况,但我要处理一个用例。
当启动应用程序确认框出现时,窗口会触发模糊事件,但用户仍在页面中,因此我不想更改页面上的 View 。只有当用户切换不同的窗口或选项卡时,我才应该更改 View 。
启动应用程序确认框示例
enter image description here
我已经搜索了启动应用程序确认的事件以及窗口、导航器和文档对象中的对象,但我没有找到任何相关的对象、函数或事件。我也在 mdn 中搜索了特定的 API 来实现这一点,但我找不到任何解决这个问题的方法。
如果您知道有关启动确认框的任何文档,请分享。我将不胜感激任何可以从另一个 Angular 解决我的用例的帮助。

最佳答案

这可以通过处理 visibilitychange 来解决事件而不是 blur如下。

document.addEventListener("visibilitychange", function() {
    //Change your view here
});
更多详情请访问 here .请注意,也有特定于浏览器的事件。
"visibilitychange"
"msvisibilitychange"
"webkitvisibilitychange"
以防万一,您还想处理用户点击浏览器之外的情况,同时保持网站可见。拉手blur而是事件。
但是现在,“启动应用程序弹出”也会使窗口模糊,要专门处理。它不会触发任何要处理的事件
我们可以快速解决它。
这个想法基于以下两种行为,
  • 触发此弹出窗口的链接不会以 http 或 https 开头。例如,缩放使用以 zoommtg:// 开头的 url启动 native 应用程序。
  • onclickonblur 之前触发的事件事件。

  • 因此,在 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/

    相关文章:

    javascript - 删除属性与创建新对象

    javascript - 我可以使用 Javascript 在 Firefox 中刷新事件堆栈吗?

    Typescript 1.5 和 window.event.ctrlKey

    javascript - 谷歌浏览器触摸事件未触发

    javascript - OpenLayer 中标记事件的奇怪行为

    javascript - 将图像从桌面拖放到 Web 文本编辑器(在 JavaScript 中实现)

    javascript初始化对象(和dom)

    javascript - Jquery 函数作为对象

    javascript - 计算特定类的嵌套 div 的数量

    javascript - jQuery Animate - 边框宽度和颜色