为了账号安全,请及时绑定邮箱和手机立即绑定

如何判断弹出窗口是否会被阻止

如何判断弹出窗口是否会被阻止

摇曳的蔷薇 2021-10-14 14:11:36
我很欣赏浏览器在决定 a 是否window.open()由点击触发时的工作方式,因为只有当它来自真实元素点击事件时才允许。我想自己编写相同的逻辑,我该怎么做?假设我有任何 JS 函数,可以从我的应用程序的其余部分在任何地方和任何地方调用,有时在调用堆栈的开头有一个单击事件处理程序,有时没有。我怎么能在我的方法中知道这一点,而没有在我的应用程序周围显式传递有关堆栈开始的信息(单击与否)?function iNeedToKnowIfStackFrame0WasAClickEventListener() {  var wasAClick = ???;  if(wasAClick)    window.open(...);  else    something.else();}
查看完整描述

1 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

您可以使用 this.event.type 获取事件信息。您可以将事件传递给函数,如下所示:


function iNeedToKnowIfStackFrame0WasAClickEventListener(event) {   

    var wasAClick = event.type == "click";    

    if(wasAClick)

        window.open(...);   

    else

        something.else(); 

}

或者你可以取消这个活动


function iNeedToKnowIfStackFrame0WasAClickEventListener() {   

    var wasAClick = this.event.type == "click";    

    if(wasAClick)

        window.open(...);   

    else

        something.else(); 

}


查看完整回答
反对 回复 2021-10-14
  • 1 回答
  • 0 关注
  • 161 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信