2013-05-26 82 views
14

我已经可以通过jQuery获取iframe的内容了,但我想了解如何使用纯JavaScript获取它。使用纯JavaScript获取iframe的内容

这是我到目前为止。

var frame = document.getElementById('awc_frame'); 
var easyBB = frame.contentWindow.document.body.innerHTML; 
easyBB.getElementById('chatbox-title').innerText="Chatbox"; 

我在做什么错,请帮忙。另外原本框架不会有一个ID,我已经尝试过这个

var frame = document.frames['awc_frame']; 

那是跨浏览器的效率?然后,我如何获得contentWindow?只是一些解释,所以我可以做到这一点与JavaScript而不是jQuery。 jQuery版本是这样的

var frame = $('#avacweb_chat iframe'); 
var easyBB = $('#chatbox-title',frame.contents()).text('Chatbox'); 
+1

[如何获得人体在Javascript中的iframe的内容?(HTTP的可能重复:// stackoverflow.com/questions/926916/how-to-get-the-bodys-content-of-an-iframe-in-javascript) –

+1

对不起,没有违法意图。是否存在社区共识(例如Meta问题),认为标记为旧问题的重复不好?你同意他们是同一个问题吗?如果不是,你能解释为什么吗?我可能误会了。 –

+1

嗯是的不同。对不起,我的粗鲁无礼只是被激怒了。不同,因为我显示我的代码,jQuery和香草,这个问题显示没有代码从OP – EasyBB

回答

31

如果它在同一个域上,试试这个。如果iframe与您正在查看的窗口的来源不同,它不会让您访问iframe内容。

var iframe = document.getElementById("awc_frame"); 
var iframe_contents = iframe.contentDocument.body.innerHTML; 

用的jsfiddle的iframe在同一域中浏览的网页工作例如:

http://jsfiddle.net/tqAL3/1/

+0

指定在:http://www.w3.org/TR/html5/embedded-content-0.html#dom-iframe- contentdocument –

+0

如果我想要HEAD,该怎么办?我必须做contentDocument.head.innerHTML并连接到主体或有更快的方式 – Rayjax

+0

nevermind - > iframe.document.getElementsByTagName('html')[0] .innerHTML – Rayjax