问题描述
我有一个页面显示在一个 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。