我有一个内部有一些javascript的网页,它将作为iframe嵌入到不同的网站中。我需要根据运行它的网站调整页面的行为。为此,我尝试从我的页面阅读top.location.href
,但这引发了一个错误:
不安全的JavaScript尝试使用网址http://website.url访问框架 来自带有网址http://mypage.url的框架。域,协议和端口 必须匹配。
有什么方法可以解决这个问题吗?
答案 0 :(得分:11)
在最常见的情况下,您确实可以检索iframe的父网址。如果iframe只有一个级别,那么此方法将起作用:
var parentURL = document.referrer
https://developer.mozilla.org/en-US/docs/Web/API/document.referrer
我在创建iframe小部件时使用过这种方法。请记住,如果您想要顶级窗口位置,但它不是您的iframe的父窗口...您将无法获得它。此外,如果您的窗口小部件在iframe中导航,则引荐来源将会更改。
Nicholas Zakas的另一篇优秀文章可以在他的博客上找到: http://www.nczonline.net/blog/2013/04/16/getting-the-url-of-an-iframes-parent/
答案 1 :(得分:1)
这是因为您声明了相同的原始政策,并且出于安全原因,它已到位。在不改变用户浏览器的情况下,无法绕过它。