能通过 js 或者 jquery 检测到 iframe 内的网页是否使用了同源策略吗?

2018-03-07 13:38:01 +08:00
 v2gf
要通过 iframe 打开别人的网页,但是有的网站使用了同源策略,导致内容打不开,现在想知道有没有办法知道 iframe 的页面是否使用了同源策略,然后根据判断去做处理
3803 次点击
所在节点    JavaScript
7 条回复
DOLLOR
2018-03-07 15:47:20 +08:00
随手写的,仅供参考

/**
* 检查 iframe 是否跨域
* @param iframeElement {HTMLIFrameElement}
* @return {Boolean}
*/
var isCrossorigin = function (iframeElement){
var crossOrigin;
try{
// 如果不跨域,contentDocument 就存在
crossOrigin = !iframeElement.contentDocument;
}catch(er){
// 如果跨域,就会抛出异常
crossOrigin = true;
}
return crossOrigin;
}
zhidian
2018-03-07 16:05:53 +08:00
v2gf
2018-03-07 18:42:29 +08:00
@DOLLOR 谢谢,但是这样只能检测是否跨域,我想知道的是 response header 里面是否设置了 X-FRAME-OPTIONS,目前看了一下是没有可能了
v2gf
2018-03-07 18:43:45 +08:00
@zhidian 好的,看了一下,一旦设置了 X-FRAME-OPTIONS,就无法在 iframe 外面读到里面的内容了
coffeSlider
2018-03-08 08:57:29 +08:00
你想要通过 iframe 操作别人的网页是不可能的,如果仅做展示,可以用两层 iframe 嵌套。
v2gf
2018-03-08 12:11:24 +08:00
@coffeSlider 只做展示,两层怎么操作?
coffeSlider
2018-03-08 13:35:35 +08:00
@v2gf
emmm
两层 iframe 啊,这个表述有什么问题吗?

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

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

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

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

© 2021 V2EX