我在 A 网页的页面上用 js 创建一个 iframe,这个 iframe.src 等于 B 网页的某个页面。我想在 iframe 加载完成后在 A 页面上用 js 获取 iframe 的 html 内容。这个功能弄了半天没搞出来,特来请教一下。
1
xiaoxinshiwo Oct 24, 2018
iframe.contentWindow, 获取 iframe 的 window 对象
iframe.contentDocument, 获取 iframe 的 document 对象 不能吗? |
2
shyangs Oct 24, 2018
As 1F.
BTW, 有沒跨域. |
3
Seanfuck Oct 24, 2018
跨域的话肯定不行
|
4
duan602728596 Oct 24, 2018 via iPhone
不要忘了,获取要在 iframe 的 load 事件内执行
|
6
yoshiyuki Oct 24, 2018
可以让后端帮你拿呀
|
7
shintendo Oct 24, 2018
跨域不能的吧
不然你在自己网页上放个隐藏 iframe,指向 X 站,然后用户又有 X 站的登录状态,那你不就拿到他的 X 站页面上的内容了 |
8
djs Oct 24, 2018
后台抓呗
|
9
097ecom Oct 24, 2018
如果 iframe 里面的 URL 和你网站的网址为同一个,那就可以,否则不行,跨域了
|
10
agdhole Oct 24, 2018
跨域会拦截
|
11
zhzer Oct 24, 2018 via Android
不能,别说 iframe,本窗口中的 js 能拿到手的文本都是浏览器处理完的
|
12
Foxkeh Oct 24, 2018 via iPhone
请百度 iframe 父子兄弟调用
|
13
t6attack Oct 24, 2018
你实在要想实现的话,把这个扩展装上,开关打开,就可以了。
https://chrome.google.com/webstore/detail/nlfbmbojpeacfghkpbjhddihlkkiljbi |
14
loginv2 Oct 24, 2018 via Android
你拿不到,但是它可以主动给你
|
15
t6attack Oct 24, 2018
这个问题,正好可以解释下浏览器跨域限制的逻辑。其实不难理解。
如果按你说的这个方法,这样可以的话。那么你访问一个网站,网站方就可以随意构建 0 像素 iframe,指向任意网站,并把代码传回服务端。这就相当于把你变成代理了。只要你停留在页面上,网站方就可以以 你的 IP 身份 上网、爬取信息、甚至黑客行为。。那样互联网不就乱套了么? |
16
SoloCompany Oct 24, 2018 via iPhone
如果你可以控制 iframe 的内容,那么可以使用 sendmessage 跨域传递消息
|
18
cdwyd Oct 24, 2018
其实是可以拿到的,用的是安卓部分早期浏览器的一个漏洞,亲测可以拿到别人网站的源代码。
具体代码现在估计找不到了,不过搂着可以按这个方向搜索下资料 |
19
OctopusGO Oct 24, 2018 via Android
可以,我以前遇到过这个问题,我明天上班了把以前的代码给你
|