将文本附加到iframe父地址栏

Append text to iframe parent address bar

本文关键字:iframe 地址栏 文本      更新时间:2023-09-26

有没有办法将一些文本附加到iframe父级的地址栏?我知道你可以通过使用HTML5history.replaceState来实现这一点,甚至有一种方法可以通过使用history.js来实现,但它似乎不适用于iframe的父级(_top)。此外,父的域与iframe的域不同(我知道这可能是我的问题的原因)。

我之所以这么做,是因为我制作了嵌入脚本,可以在任何网站上插入,它主要创建一个带有一些内容的iframe,但我希望能够在家长的地址栏中添加一些文本,以便能够在facebook或twitter上共享该链接(我想共享家长的url,而不是iframe url)。

有人知道这能不能做到吗?或者可能是我问题的另一个解决方案?

谢谢!

有没有办法将一些文本附加到iframe父级的地址栏?我知道你可以通过使用HTML5历史记录.replaceState 来实现这一点

是的。

此外,父的域与iframe的域不同(我知道这可能是我的问题的原因)。

出于安全原因,您不能跨域执行此操作。您可以postMessage到顶部框架,并让在顶部框架中运行的脚本侦听消息并更改URL作为响应。

显然,这需要框架所在网站的合作。

window.addEventListener("message", receiveMessage, false);
function receiveMessage(event) {
    if (event.data && event.data.updateUri) {
        history.replaceState({}, "", event.data.updateUri);
    } 
}

top.postMessage({updateUri: "/example"}, "*");