2012-07-03 65 views
0

當我嘗試訪問的iframe,我得到這個錯誤,我不知道我做錯了。有人可以幫我解決這個問題嗎?訪問的IFrame

var ifrm = document.getElementById('iframe'), 
ifrm = (ifrm.contentWindow) ? ifrm.contentWindow : 
           (ifrm.contentDocument.document) 
          ? ifrm.contentDocument.document : 
           ifrm.contentDocument; 

ifrm.open(); 
ifrm.write("Hello World!"); 
ifrm.close(); 

這是我收到的錯誤:

遺漏的類型錯誤:未定義

遺漏的類型錯誤的無法讀取屬性 '文件':無法讀取的不確定

財產 '的readyState'
+3

***不能讀取屬性「文件」的不確定***是相當清楚的 – xandercoded

+1

'iframe.contentWindow'是不是跨瀏覽器? –

+3

附註:對嵌套的三元運算符說「不」。 – FishBasketGordo

回答

3

您正在尋找的DOM元素:

<iframe> 

iframe是一種HTML標記的名稱,這個元素(這將被定義爲ID =「值」)的ID沒有價值,所以你需要使用:

document.getElementsByTagName('iframe')[0] 

更改0到任何是否有你的頁面的getElementsByTagName()上的多個iframe會返回結果的數組索引是理想的,即使只有一個頁面上的iframe中。

此外,您可以按如下簡化三元操作:

ifrm = ifrm.contentWindow ? ifrm.contentWindow.document : ifrm.contentDocument; 

這樣,您就可以獲取在所有瀏覽器內嵌框架,這將讓您使用開放(文檔對象),寫() ,close()方法以及readyState屬性。

+1

謝謝...太好了!嘗試使用ID最好,parent.document.getElementById(XXXX);不需要[0] ;-) – KingRider

+0

同意。使用ID更好,因爲您可以更確定您正在檢索您實際需要的元素。 –

2

put標記後的JavaScript源。

這樣

<html> 
<head> 
</head> 
<body> 
<iframe> 
<script> 
blah blah 
</script> 
</body> 
</html>