获取parent.location.url - iframe - 从子级到父级

时间:2010-12-10 21:18:56

标签: javascript jquery html iframe

我有一个在iframe中显示的页面。

我需要从该页面(子页面)获取带有js的parent.location.url。

两个网站都位于不同的域中。

我正在尝试:

警报(parent.location.url)

但是我收到了这个错误:

http://parentdomainhttp://childdomain获取属性Location.URL的权限被拒绝。

????有可能吗?

7 个答案:

答案 0 :(得分:72)

试试这个:

var referrer = document.referrer;
alert(referrer);

答案 1 :(得分:7)

你本来想做的事情本身是不可能的。除非您可以控制父页面调用子页面。如果这样做,则可以在父页面的URL中使用get语句调用子页面。因此,如果您的父页面是http://parentpage.com,那么您应该如何调用iFrame。

<iframe src='http://childpage.com/?parent=http://parentpage.com' />

然后你在子页面中要做的就是获取引用是用

获取字符串
window.location.search //not sure of browser compatibility with this

并通过从该字符串中抓取来提取父页面的URL。我会提供更多细节,但我甚至不确定我的第一个问题。

答案 2 :(得分:4)

你有没有试过像:

alert(window.top.location.href);

答案 3 :(得分:2)

如果父页面和iframe位于同一个域中,则才能正常工作。如果他们不在同一个域中,您可以尝试通过 src 传递该位置,就像麦迪逊威廉姆斯建议的那样。

这可能就是为什么你得到“Permission denied ...”

答案 4 :(得分:2)

您将能够像这样找到它,并且所有浏览器都应该能够支持它:

query = window.parent.location.search.substring(1);

你不应该得到权限错误,但我可能错了。

答案 5 :(得分:1)

尝试:

var pathname = window.parent.location.href

答案 6 :(得分:1)

使用postMessage在窗口之间来回传递数据。它有点笨拙,但是当窗户在原点之间进行通信时需要它。