gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 22:57:47 25 4
gpt4 key购买 nike

我很欣赏浏览器在确定 window.open() 是否由点击触发时的工作方式,例如,只有当它来自真实元素的点击事件时才允许。

我想自己写同样的逻辑,我该怎么做?

假设我有任何 JS 函数,可以从应用程序的其余部分的任何地方调用,有时在调用堆栈的开头使用单击事件处理程序,有时则不使用。我如何在我的方法中知道这一点,而不在我的应用程序中一直显式传递有关堆栈开始的信息(单击与不单击)?

function iNeedToKnowIfStackFrame0WasAClickEventListener() {
var wasAClick = ???;
if(wasAClick)
window.open(...);
else
something.else();
}

最佳答案

您可以使用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();
}

关于javascript - 如何判断弹出窗口是否会被阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57907669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com