top.location.href 可以跨域跳转吗

2017-06-24 23:25:08 +08:00
 wico97

如果在 iframe 页面里使用 top.location.href, 不同域的情况下能让 top 页面发生跳转吗

4644 次点击
所在节点    JavaScript
10 条回复
lslqtz
2017-06-24 23:33:10 +08:00
href 应该可以跨域吧。。iframe 跨域跳转了数据就不知道了
gamexg
2017-06-25 00:13:08 +08:00
可以,为了防止被人嵌套就是用这个做强制跳转的。
wico97
2017-06-25 00:39:18 +08:00
@gamexg http://jsfiddle.net/ppkzS/ 请问这个为啥不起作用
gamexg
2017-06-25 01:03:29 +08:00
我的错误,top.location 已经在去年被禁用了。

https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/Xi8-y4ySjA4/dc4BFfqyBQAJ
wico97
2017-06-25 05:28:44 +08:00
@gamexg 还有其他方法来实现 top.location.href 的功能吗
codehz
2017-06-25 10:05:29 +08:00
@wico97 用 postMessage 手动传消息,然后最外层页面处理。。。这个保证可以跨域
wico97
2017-06-25 16:17:17 +08:00
@codehz 但如果我的本意不想让别人 iframe 我的网站,最外层不会处理我的请求呀。postMessage 只适合于我有权限修改最外层的代码的情况
codehz
2017-06-25 16:24:41 +08:00
@wico97 #7 别人也不让想你改地址啊。。。。
SakuraKuma
2017-06-26 09:09:22 +08:00
既然只是想别人不 iframe 自己,为何不 top.window === window 判断呢?
codehz
2017-06-26 10:15:03 +08:00
@wico97 话说除了 9 楼的方案,还可以在响应头里加上 X-Frame-Options: SAMEORIGIN 来解决,当然最好是双管其下,因为两种方案都有绕过的可能性,9 楼的方案可以通过禁止 iframe 脚本加载来绕过。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/370862

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX