Angular 角度路由器不';在IFrame中,t在卸载之前触发ON
我在角路线视图中有一个IFrame。当我通过Angular 角度路由器不';在IFrame中,t在卸载之前触发ON,angular,Angular,我在角路线视图中有一个IFrame。当我通过navigateByUrl触发路由器中的状态更改时,窗口中的onbeforeunload功能不会被触发。同样适用于addeventlisten(“beforunload”,…) 第一个问题: 为什么它没有被触发 第二: 有没有办法轻松解决这个问题?使用onpagehide事件解决了这个问题。您也可以使用window.onunload事件。当角度组件(包含视图中的iframe)被破坏时,会在iframe.contentWindow中触发此事件(与上述wi
navigateByUrl
触发路由器中的状态更改时,窗口中的onbeforeunload
功能不会被触发。同样适用于addeventlisten(“beforunload”,…)
第一个问题:
为什么它没有被触发
第二:
有没有办法轻松解决这个问题?使用
onpagehide
事件解决了这个问题。您也可以使用window.onunload
事件。当角度组件(包含视图中的iframe)被破坏时,会在iframe.contentWindow
中触发此事件(与上述window.onpagehide
)。那么为什么没有触发事件窗口.onbeforeunload
(应该在unload
之前)呢?这就是问题所在D这是一个DOM事件,不涉及角度。如果不使用Angular激发,也不会使用Angular激发。你试过普通JS吗?也许浏览器不支持这个功能。window.onbeforunload=function(){}
是纯JS,当我在浏览器中直接使用页面时,会触发这些回调。当我在IFrame中使用它时,它不会被触发。这可能是IFrame的一个问题。我自己没用过。请尝试在中创建一个复制,显示它如何与普通JS一起工作,以及它如何不与Angular一起工作。通过使用onpagehide
事件修复了它