Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度路由器不';在IFrame中,t在卸载之前触发ON_Angular - Fatal编程技术网

Angular 角度路由器不';在IFrame中,t在卸载之前触发ON

Angular 角度路由器不';在IFrame中,t在卸载之前触发ON,angular,Angular,我在角路线视图中有一个IFrame。当我通过navigateByUrl触发路由器中的状态更改时,窗口中的onbeforeunload功能不会被触发。同样适用于addeventlisten(“beforunload”,…) 第一个问题: 为什么它没有被触发 第二: 有没有办法轻松解决这个问题?使用onpagehide事件解决了这个问题。您也可以使用window.onunload事件。当角度组件(包含视图中的iframe)被破坏时,会在iframe.contentWindow中触发此事件(与上述wi

我在角路线视图中有一个IFrame。当我通过
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
事件修复了它