我使用的是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页。
当前行为
mypage.com/page1
mypage.com/page2
想要的行为:
mypage.com/page1
mypage.com/page2
,而不重新加载整个iframe当我点击这两个按钮时,我希望“mypage.com”只在第一次点击时加载,并且每次后续点击都不应该重新加载iframe,而只是在iframe内部导航。
如果您的父站点与子站点(mypage.com)位于同一域中,您可以尝试以下操作:https://stackoverflow.com/a/45828201/10672983
如果您有跨域的问题,可以尝试简单的消息传递系统父->; 孩子:
如何在iframe和父站点之间进行通信?
父级:
myIframe.contentWindow.postMessage('/page2', '*');
孩子:
window.onmessage = function(e){
router.navigateByUrl(e.data)
};