Angular语言 - 如何在iFrame中更改[src]时调用ngOnDestroy



我有一个只支持多个内部链接的幻灯片播放应用程序。

HTML

<iframe width="100%" id="iframeSlide" height="100%" #iframe frameBorder="0" [src]="urlSafe"></iframe>

TS代码

current.urlSafe = current.sanitizer.bypassSecurityTrustResourceUrl(current.slideUrls[current.index]);

slideUrls是一个包含内部链接列表的数组,但是当新url设置为current.urlSafe时,旧url没有调用ngOnDestroy函数来释放资源。

我尝试设置current.urlSafe = "about:blank";

var frame = document.getElementById("iframeSlide"),
frameDoc = frame.contentDocument || frame.contentWindow.document;
frameDoc.removeChild(frameDoc.documentElement);

但是没有调用ngOnDestroy函数。在内部页面,我使用setInterval函数,所以需要去ngOnDestroy清除Interval,没有它的许多请求调用在setInterval

我引用的链接

https://web.dev/detached-window-memory-leaks/

如何清除所有间隔?

改变iframe src就相当于在浏览器地址栏中导航到一个新的url。浏览器自己清除了顶层JS/HTML资源(这里是

)ngOnDestroy会在你删除应用中的组件或服务时出现,但不会在刷新时出现

相关内容

  • 没有找到相关文章

最新更新