JS Popup 中断 javascript 的执行
JS Popup interrupts execution of javascript
假设我有 http://www.w3schools.com/js/tryit.asp?filename=tryjs_prompt 页面。现在我有了点击动作的事件监听器,像这样:
document.addEventListener('click', function() {
MyMagicHere();
});
现在,如果单击“试一试”按钮,MyMagicHere()
会被 JS 弹出窗口打断。即使单击此按钮,我也希望执行 MyMagicHere()
。有什么way/workaround如何处理这种情况?
您可以使用 'mouseup' 事件而不是 'click' 事件来触发您的 MyMagicHere 调用,因为它会在按钮上的 'click' 事件之前触发。
尝试将 addEventListener
的 useCapture
参数设置为 true
。然后您的侦听器将在捕获阶段执行,然后再执行任何事件目标。
document.addEventListener('click',function(){
MyMagicHere();
}, true);
这就是捕获和冒泡事件的概念。你可以在这个question
中看到更多
假设我有 http://www.w3schools.com/js/tryit.asp?filename=tryjs_prompt 页面。现在我有了点击动作的事件监听器,像这样:
document.addEventListener('click', function() {
MyMagicHere();
});
现在,如果单击“试一试”按钮,MyMagicHere()
会被 JS 弹出窗口打断。即使单击此按钮,我也希望执行 MyMagicHere()
。有什么way/workaround如何处理这种情况?
您可以使用 'mouseup' 事件而不是 'click' 事件来触发您的 MyMagicHere 调用,因为它会在按钮上的 'click' 事件之前触发。
尝试将 addEventListener
的 useCapture
参数设置为 true
。然后您的侦听器将在捕获阶段执行,然后再执行任何事件目标。
document.addEventListener('click',function(){
MyMagicHere();
}, true);
这就是捕获和冒泡事件的概念。你可以在这个question
中看到更多