2013-05-26 112 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