0
点赞
收藏
分享

微信扫一扫

js通过iframe访问跨域网站,获取不到内部标签?

圣杰 2022-01-30 阅读 41


1.页面iframe访问跨域网站baidu
html
<iframe id="iframe" src="http://www.baidu.com" frameborder="0"></iframe>
javascript
let iframe = document.getElementById('iframe')
2.打印访问内容

1.查看是否可以访问​​document​

console.log(iframe.contentWindow.document) //结果如下图:可以访问

js通过iframe访问跨域网站,获取不到内部标签?_数组

2.查看是否可以访问到​​html​​标签

//方式1
console.log(iframe.contentWindow.document.html) // undefined
//方式2
console.log(iframe.contentWindow.document.childNodes[0]) //可以访问

js通过iframe访问跨域网站,获取不到内部标签?_html_02

3.通过​​childNodes​​是否可以继续访问下一级

console.log(iframe.contentWindow.document.childNodes[0].childNodes); //此处可以获取到类数组,如下图
获取具体head和body标签时,谷歌undefined ,但是火狐可以,再继续childNodes的话就[]了
console.log(iframe.contentWindow.document.childNodes[0].childNodes[0]) //undefined
console.log(iframe.contentWindow.document.childNodes[0].childNodes[1])

js通过iframe访问跨域网站,获取不到内部标签?_数组_03js通过iframe访问跨域网站,获取不到内部标签?_数组_04

3.总结

通过iframe访问跨域网站时,

1.直接访问标签的话,只允许访问到document

2.通过childNodes的话,谷歌可以查看html.childNodes,火狐可以查看到head和body标签



举报

相关推荐

0 条评论