将文本附加到iframe父地址栏

时间:2013-08-09 16:42:39

标签: javascript jquery html5 dom

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

我想这样做是因为我制作了可以在任何网站上插入的嵌入式脚本,它主要创建一个带有一些内容的iframe,但我希望能够将一些文本附加到父级的地址栏以便能够在Facebook或Twitter上分享该链接(我想分享父母的网址,而不是iframe网址)。

somebosy知道是否可以这样做吗?或者可能是我问题的另一种解决方案?

谢谢!

1 个答案:

答案 0 :(得分:1)

  

有没有办法将一些文字附加到iframe父母的地址栏?我知道你可以通过使用HTML5 history.replaceState

来实现这一目标

是的,那。

  

父母的域名也与iframe的域名不同(我知道这可能是我的问题的原因)。

出于安全原因,您无法跨域执行此操作。您可以postMessage to the top frame并在顶部框架中运行脚本侦听消息并更改响应中的URL。

显然,这需要主持框架的网站的合作。

window.addEventListener("message", receiveMessage, false);

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

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