代码之家  ›  专栏  ›  技术社区  ›  callback

当出现DOM操作时,iframe内容将重新加载

  •  1
  • callback  · 技术社区  · 8 年前

    我有一个iframe,在满足特定条件时动态加载。

          <div *ngIf="iframeData">
            <iframe [src]="sanitizer.bypassSecurityTrustResourceUrl(iframeData.iFrameUrl)" name="paymetricIFrame"></iframe>
          </div>
    

    我的问题是,每当页面中的任何内容(框架之外)发生更改(输入文本、选择值等),iFrame内容就会重新加载,我可以看到包含的所有脚本都被重新加载到网络选项卡中,因此用户在iFrame中填写的内容就会消失。

    我怀疑 ChangeDetectionStrategy 因为加载iframe文件的调用的启动器的堆栈跟踪返回到 viewRef._detectChanges 从屏幕截图中可以看到:

    enter image description here

    我试图添加 ChangeDetectionStrategy.OnPush 但这在页面上产生了其他问题。

    1 回复  |  直到 8 年前
        1
  •  1
  •   callback    8 年前

    我通过创建一个只包含iframe的新组件解决了这个问题。我仍然想知道为什么这解决了这个问题。。。

    推荐文章