不会引发addEventListener异常(跨域)

时间:2019-01-11 11:52:42

标签: javascript popup cross-domain

我正在为弹出窗口寻求适当的实现。我的目标是正确侦听子窗口关闭事件。在域相同的情况下,我希望通过addEventListener进行事件;在域不同的情况下,我希望进行回退,以检查间隔是否在子窗口上关闭window.close。

我的问题是该异常不会一直触发,因此我可以从后备开始。如果我在addEventListener之前设置一个断点,它将引发异常,并且可以捕获它。如果代码仅在没有断点的情况下运行,则不会引发异常,并且addEventListener似乎成功,但是不会捕获任何事件。

<button>Click</button>
<script>
  document.querySelector('button').addEventListener('click', () => {
    var h = window.open('https://google.com', 'asd', `scrollable`);

    try {
      h.addEventListener('close', () => console.log('never captured'));
    } catch (e) {
      console.warn('Fallback not happening because nothing to catch', e);
    }
  });
</script>

您知道如何解决此问题或如何建立适当的后备吗?

预先感谢

0 个答案:

没有答案