问题描述

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

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

两个网站都在不同的域。

我尝试着:

警报 (parent.location.url)

但是我收到这个错误:

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

???? 可能吗?

最佳解决方案

尝试这个:

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

次佳解决方案

你本来想做的是不可能的。除非您可以控制父页面调用子页面。如果这样做,那么您可以在父页面的 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 。我会提供更多的细节,但我甚至不知道我有第一个问题。

第三种解决方案

你有没有尝试像:

alert(window.top.location.href);

第四种方案

只有父页面和 iframe 位于同一个域上才有效。如果他们不在同一个域上,您可以尝试通过 src 传递位置,如麦迪逊·威廉姆斯建议的。

这可能是为什么你得到 「权限被拒绝…」

第五种方案

你可以这样找到它,所有浏览器都应该能够支持它:

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

你不应该得到这个权限的错误,但我可能是错的。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛