chrome浏览器iframe没有办法使用contentDocument获取子级document对象

vimin_M 2019-08-02 10:22:00
在学习iframe的过程中,我根据网上的一些教程,试着去获取子级中的dom元素,但我发现没有办法取到
父级代码部分
var iframe = document.getElementById('iframe');//or iframe = window.frames['iframe']
var sonWindow = iframe.contentWindow;
var idoc = iframe.contentDocument;//or idoc = sonWindow.window
//通过contentDocument获取子级dom元素
console.log(idoc)
console.log(idoc.document.getElementById('sonPage'));

子级代码部分
<div id="sonPage">我是内联样式</div>

打印结果


这是为什么??获取的子级document对象只有body标签但是没有其中div元素的内容,我们要如何获取
...全文
1644 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
vimin_M 2019-08-05
  • 打赏
  • 举报
回复
我查了一下,好像chrome因为跨域的问题,contentWindow.document是处于deny状态的,没有办法获取到
天际的海浪 2019-08-04
  • 打赏
  • 举报
回复
发下完整代码
vimin_M 2019-08-04
  • 打赏
  • 举报
回复
我试了之后发现还是不行,在打印idoc的时候就是null了,没有办法获取到他的document
vimin_M 2019-08-03
  • 打赏
  • 举报
回复
好的,我试一下,谢谢解答
天际的海浪 2019-08-02
  • 打赏
  • 举报
回复
再有你要等iframe中的页面加载完成之后才能获取到页面的内容。(前提是不能跨域)

var iframe = document.getElementById('iframe');//or iframe = window.frames['iframe']
iframe.onload = function () {
	var sonWindow = iframe.contentWindow;
	var idoc = iframe.contentDocument;//or idoc = sonWindow.window
	//通过contentDocument获取子级dom元素
	console.log(idoc)
	console.log(idoc.getElementById('sonPage'));
}

天际的海浪 2019-08-02
  • 打赏
  • 举报
回复
idoc 已经是document对象了。不需要再加document了 idoc.getElementById('sonPage')

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧