Javascript 如何判断弹出窗口是否会被阻止
我理解浏览器在决定Javascript 如何判断弹出窗口是否会被阻止,javascript,popup,Javascript,Popup,我理解浏览器在决定窗口.open()是否由单击触发时的工作方式,例如,只有当它来自真实的元素单击事件时才允许 我想自己写同样的逻辑,我该怎么做 假设我有任何JS函数,可以从应用程序的其余部分在任何地方调用,有时在调用堆栈的开始使用click事件处理程序,有时不使用。我如何在方法中知道这一点,而不在应用程序的各个方面显式地传递有关堆栈开始的信息(单击与否) function iNeedToKnowIfStackFrame0WasAClickEventListener() { var wasAC
窗口.open()
是否由单击触发时的工作方式,例如,只有当它来自真实的元素单击事件时才允许
我想自己写同样的逻辑,我该怎么做
假设我有任何JS函数,可以从应用程序的其余部分在任何地方调用,有时在调用堆栈的开始使用click事件处理程序,有时不使用。我如何在方法中知道这一点,而不在应用程序的各个方面显式地传递有关堆栈开始的信息(单击与否)
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();
}
含糖的我没有意识到这件事。这件事是件大事。当然,如果我更改了
此的范围,则不会起作用,但我没有,所以没关系:拇指支持: