当前位置:  开发笔记 > 编程语言 > 正文

Javascript iframe innerHTML

如何解决《JavascriptiframeinnerHTML》经验,为你挑选了4个好方法。

有没有人知道如何从IFRAME中获取HTML我已尝试过几种不同的方法:

document.getElementById('iframe01').contentDocument.body.innerHTML
document.frames['iframe01'].document.body.innerHTML
document.getElementById('iframe01').contentWindow.document.body.innerHTML

等等



1> wcm..:

我想这就是你想要的:

window.frames['iframe01'].document.body.innerHTML 

编辑:

我有很好的权威,这在Chrome和Firefox中不起作用,虽然它在IE中完美运行,这是我测试它的地方.回想起来,这是一个很大的错误

这将有效:

window.frames[0].document.body.innerHTML 

我知道这不是所要求的,但不想删除答案,因为我认为它有一个地方.

我喜欢下面的@ ravz的jquery答案.


如果你想更加明确,你可以说:window.frames ['iframe01'].document.body.innerHTML
这种方式不会也不会在Firefox中起作用,因为firefox不支持window.frames ['frameId']只有window.frames [0] window.frames [1]等

2> cypher..:

有类似以下的东西会起作用.



// The following function should be inside a script tag

function populateIframe(id) { 

    var text = "This is a Test"
var iframe = document.getElementById(id); 

var doc; 

if(iframe.contentDocument) { 
    doc = iframe.contentDocument; 
} else {
    doc = iframe.contentWindow.document; 
}

doc.body.innerHTML = text; 

  }



3> ConroyP..:

如果你看一下JQuery,你可以这样做:



$('#my_iframe').contents().find('html').html();

这假设您的iframe父级和子级驻留在同一服务器上,这是由于Javascript中的同源策略.


请停止使用jQuery作为答案!
你抓住了html元素的innerHTML而不是body,这是一个非常倒退的方法.当有本机DOM属性用于检索您想要的内容(例如.body)时,您应该避免查找调用的开销.

4> ravi404..:

康罗伊的回答是正确的.如果您只需要body标签中的内容,只需使用:

$('#my_iframe').contents().find('body').html();

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有