2010-03-02 74 views
2

我有兩個html文件。一個在iframe中包含另一個。 iframe在先前創建的元素上執行getElementById。這在Chrome/Safari中運行良好,但不在Firefox/IE8中,我不明白爲什麼。Firefox中的getElementById iframe返回null,但在Safari/Chrome中有效

火狐返回:空

Safari瀏覽器返回:對象HTMLDivElement]

的index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd"> 

<html lang="en"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>untitled</title> 
</head> 
<body> 
    <iframe src="comment.html"></iframe> 
</body> 
</html> 

comment.html

<div id="foobar"></div> 
<script type="text/javascript"> 
    alert(document.getElementById('foobar')); 
</script> 
+0

直接打開comment.HTML會發生什麼? – 2010-03-02 12:57:06

+0

好吧,同樣的錯誤出現。所以我想這不是一個真正的iframe相關問題。 – 2010-03-02 12:58:34

回答

4

你評論html文件不正確。嘗試使用:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd"> 

<html lang="en"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>untitled</title> 
</head> 
<body> 
<div id="foobar"></div> 
<script type="text/javascript"> 
    alert(document.getElementById('foobar')); 
</script> 

</body> 
</html> 
+0

工作。我完全忘了加載在iframe中的文檔必須是正確的HTML文檔(包含文檔類型等)。謝謝! – 2010-03-02 13:09:34

相關問題