获取顶部窗口url从框架/iframe在不同的域
Get top window url from frame/iframe in different domain
我有一个网页,里面有一些javascript,将嵌入作为iframe在不同的网站。我需要根据它正在运行的网站调整我的页面的行为。为此,我试图从我的页面读取top.location.href
,但这引发了一个错误:
不安全的JavaScript试图访问URL为http://website.url的框架从框架URL http://mypage.url。域、协议和端口必须匹配。
有没有办法解决这个问题?
在大多数情况下,您确实可以检索iframe的父url。如果iframe只有一层深度,这个方法将起作用:
var parentURL = document.referrer
我在创建iframe小部件时使用了这个方法。只要记住,如果你想要顶层窗口的位置,但它不是你的iframe的父窗口…你不会得到它的。此外,如果您的小部件在iframe内导航,则referrer将随之更改。
Nicholas Zakas的另一篇精彩文章可以在他的博客上找到:http://www.nczonline.net/blog/2013/04/16/getting-the-url-of-an-iframes-parent/
这是你所说的同源策略,它是出于安全原因。如果不改变用户的浏览器,就没有办法绕过它。
相关文章:
- 防止Iframe窗体在新窗口中打开
- node-webkit-从父窗口捕获iframe鼠标事件
- 如何关闭html中的iframe弹出窗口
- 允许父窗口在其不同域的子iframe上调用函数
- 检查iframe内部的窗口是否已关闭
- 在jQuery中的IFrame中提交表单后刷新父窗口
- 在引导程序弹出窗口中显示iframe
- 可以'iframe的父窗口中发生捕获错误
- 如何在不使用iframe或库的情况下创建剪切显示窗口区域
- 如何在iframe窗口中只允许选中一个复选框
- 访问父 DOM 中的 iframe 窗口对象
- 自动完成到ui.item.url(在iframe窗口之外)
- IE9 iframe窗口删除后,将不能执行代码从一个释放的脚本
- Firefox插件从父窗口和iframe窗口播放视频
- 将变量传递到jQuery中的iframe窗口
- Extjs 4:创建一个 iFrame 窗口
- 如何用javascript关闭重新加载页面的iframe窗口
- 我们可以从从Iframe本身打开的页面关闭Iframe窗口吗?
- AngularJs的主窗口和iframe窗口的模型是一样的
- iFrame窗口高度跨域(请求从主机网站)