首页 > 解决方案 > 无法订阅 IE 中窗口的关闭事件

问题描述

我想订阅一个窗口的 close / beforeunloadevent:

 public OpenParameters() {

            if (this.openProcessStrategyWindowHandle) {
                this.openProcessStrategyWindowHandle.focus();
            }

            if (this.openParametersWindowHandle) {
                this.openParametersWindowHandle.focus();
                return;
            }

            this.generateUrlParametersWindow();
            this.openParametersWindowHandle = this.$window.open(this.openParametersUrl + "?"
                + this.eveUtilsService.createGuid(),
                "parametersWindow", "width=1280,height=750,toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,copyhistory=yes,resizable=yes");
            // event for closing window/tab
            this.openParametersWindowHandle.onbeforeunload = () => {
                this.CloseParametersInfo();
            };
        }

这适用于 Chrome 但不适用于 IE11 我也尝试通过订阅

this.openParametersWindowHandle.addEventListener("beforeunload", () => {
                this.CloseParametersInfo();
            });

这导致 IE 出现以下消息:“Das Object untersützt die Funktion oder Eigenschaft "addEventListener" nicht”

我发现了一个可能相关的主题 在 IE9 上,Win 7 window.open() 返回 null 而不是打开窗口的引用

但建议的修复都没有帮助。有任何想法吗?

更新:令人困惑的是:在上面的代码中设置并命中断点后,代码似乎可以工作。

标签: javascriptangulartypescript

解决方案


推荐阅读