【发布时间】:2021-06-05 21:54:36
【问题描述】:
我是 iframe 与父级交互的新手,所以让我简单解释一下我面临的问题:
我有一个带有 iframe 的网站。如何使用 JavaScript 或 jQuery 代码根据用户在 iframe 中单击的内容动态更改我的父 URL?
例如,如果我的父 URL 是 parent.com?page=1&currency=eur,那么我的 iframe 将自动为 iframe.com?page=1&currency=eur,但用户可以单击 iframe 内的另一个链接。如果用户单击链接并且 iframe src 更改为 iframe.com?page=another_page,我希望父 URL 动态更改为 parent.com/page=another_page 或 parent.com#page=another_page。换句话说,我将所有 iframe URL 参数传递给父级。
谁能帮我解决这个问题?
我可以完全控制父窗口,也可以向子窗口添加一些代码,但它们不在同一个域中。
谢谢
【问题讨论】:
-
从你保留
<iframe></iframe>的页面,const iframeWindow = document.querySelector('iframe').contentWindow;得到另一个页面的window。从包含内容const parentWindow = parent;的页面中,获取父window。这两个变量现在都是window对象,所以parentWindow.location可以获取和设置location。分配 GET URL 的问题是您的页面会重新加载,因此sessionStorage或localStorage或主题标签可能是更好的解决方案。 -
要扩展 @StackSlave 告诉您的内容,使用 parent.history.pushState() 您可以更改父 url 而无需重新加载。
标签: javascript html jquery iframe