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