从框架内读取父位置(不同的域)

时间:2011-02-20 00:13:36

标签: javascript dom iframe cross-domain

iframe如何读取其父位置网址,父窗口的域名和iframe不同?

我知道这个问题的“常见”答案是,由于域名冲突,浏览器不允许跨域访问。 因此,以下将无效

parent.location.href

但也许有人可以在这里想到开箱即用并提出与Cross-document messaging hack类似的内容?

2 个答案:

答案 0 :(得分:1)

也许您可以查看document.referrer?当然,这仅在用户尚未点击iframe内的链接时才有效。

答案 1 :(得分:0)

我明白了!

我的解决方案如下:

<强> 1。将 onload 属性与框架

一起使用
<iframe src="http://website.com/" onload="src+='#'+document.location"></iframe>

<强> 2。监控框架中的哈希变更

var referrer = '?';
window.onhashchange = function() {
  var ref = document.location.hash;
  if(ref && ref.length > 1) {
    var t = ref.split('#');
    ref = t[1];
  }
  referrer = ref;
};

和“voilà”: - )

顺便说一句,您会找到有关onhashchange事件的更多详细信息。