比如 我自己的网站 www.aaa.com, 用iframe 引入了 www.bb.com (是别人的网站,我不能控制),
这种情况,可以获取到吗
比如 我自己的网站 www.aaa.com, 用iframe 引入了 www.bb.com (是别人的网站,我不能控制),
这种情况,可以获取到吗
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
同源策略影响,在前端是没有办法实现的,如果可以随便操作子页面的元素,那对于
iframe
里面的页面岂不是很危险如果真的要操作
iframe
里面的元素,可以尝试用nginx
代理来实现方法一
把你的页面配置和代理转发的配置都写在一个
server
里面,区分不同location
,这样他们的域名都是一样的,不存在跨域问题,这样配置的话,要调整好代理页面的静态问题的访问路径,例子就不给出了方法二
写两个
server
,server1
假定域名为aaa.xxx.com
, 用作代理,返回的时候插入一段 js 代码修改domain=xxx.com
,server2
假定域名为bbb.xxx.com
, 用作你的页面,在页面前面设置domain=xxx.com
。下面给个例子,
aaa.xxx.com
代理www.qq.com
,bbb.xxx.com
的iframe
引用aaa.xxx.com
, 并获取iframe
的元素首先是
nginx
的server
配置然后写一个测试代码
/home/www/bbb.xxx.com/index.html
启动
Nginx
, 访问bbb.xxx.com
查看结果可以看到,
iframe
已经实现跨域了,不过这样做,有些问题还是不能忽略的https
问题JS
、CSS
、png
,可能有跨域或者权限问题domain
造成某些资源无法获取ps: 如果有好的方案欢迎分享