我的IE不支持“document.getElementById()”!

时间:2010-07-08 14:14:08

标签: javascript internet-explorer-6

我的IE是IE 6.它已经很老了,但我必须使用它。

我刚发现一个奇怪的问题,它不支持“document.getElementById()”!

请参阅我的测试文件:test.html

<a id="aaa">xxx</a>
<script>
aaa = document.getElementById("aaa");
alert(aaa);
</script>

当我通过IE打开此文件时,会显示一个ERROR对话框:

line: 3
char: 1
error: object doesn't support the attribute or method
code: 0
URL: file://D:/test.html

我犯了一些错误吗?太奇怪了〜

5 个答案:

答案 0 :(得分:15)

因为anchor元素(在IE6中)被设置为名为aaa的全局变量。然后你试图使用同名的另一个变量。

如果您将其更改为...

<a id="aaa">xxx</a>
<script>
bbb = document.getElementById("aaa");
alert(bbb);
</script>

它应该有用。

请参阅http://verens.com/2005/03/18/getelementbyid-bug-in-ie6/

答案 1 :(得分:4)

更改变量名称,使其与元素ID不同。

答案 2 :(得分:4)

如barrylloyd所述,因为锚元素(在IE6中)被设置为名为aaa的全局变量。您可以使用var创建一个名为aaa的局部变量:

<a id="aaa">xxx</a>
<script type="text/javascript">
var aaa = document.getElementById("aaa");
alert(aaa);
</script>

答案 3 :(得分:0)

这是你的html文件或整个文件的片段吗?在第一种情况下,我建议添加相应的代码(<html><body>)和doctype。其次,当你执行这个javascript时应该加载元素,但是使用IE6,我不会依赖它。因此,您可能希望在onload函数中尝试它:

window.onLoad = function() {
  alert(document.getElementById("aaa"));
}

答案 4 :(得分:-3)

如果您将javascript块放在<head>标记部分中,它会起作用。无论如何,通常都应该放置JS。