提问者:小点点

更改src属性时阻止iframe重新加载?


我使用的是Angular(对于这个问题并不重要,但解释了语法),有如下内容:

HTML:

<button (click)="setIframeSrc('http://mypage.com/page1')">Page 1</button>
<button (click)="setIframeSrc('http://mypage.com/page2')">Page 2</button>

<iframe [src]="iframeSource"></iframe>

打字稿:

setIframeSrc(url) {
    this.iframeSource = url;
}

网站“MyPage.com”是我自己的网站,是一个水疗应用程序,意味着没有页面重载发生时,从第1页到第2页。

当前行为

  1. 我单击“第1页”按钮
  2. iframe加载在mypage.com/page1
  3. 我单击“第2页”按钮
  4. iframe在mypage.com/page2
  5. 中重新加载和加载

想要的行为:

  1. 我单击“第1页”按钮
  2. iframe加载在mypage.com/page1
  3. 我单击“第2页”按钮
  4. 在iframe中导航到mypage.com/page2,而不重新加载整个iframe

当我点击这两个按钮时,我希望“mypage.com”只在第一次点击时加载,并且每次后续点击都不应该重新加载iframe,而只是在iframe内部导航。


共1个答案

匿名用户

如果您的父站点与子站点(mypage.com)位于同一域中,您可以尝试以下操作:https://stackoverflow.com/a/45828201/10672983

如果您有跨域的问题,可以尝试简单的消息传递系统父->; 孩子:

如何在iframe和父站点之间进行通信?

父级:

 myIframe.contentWindow.postMessage('/page2', '*');

孩子:

window.onmessage = function(e){
   router.navigateByUrl(e.data)
};