Firefox中的getElementById iframe返回null但在Safari / Chrome中有效

时间:2010-03-02 12:53:01

标签: javascript iframe cross-browser getelementbyid

我有两个html文件。一个包含另一个iframe。 iframe在先前创建的元素上执行getElementById。这在Chrome / Safari中运行良好,但在Firefox / IE8中没有,我不明白为什么。

Firefox返回:null

Safari返回:[object 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>

1 个答案:

答案 0 :(得分: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>