当我在Internet Explorer中使用document.getElementById
时,出现此错误:
Mensaje: El objeto no acepta esta propiedad o método
翻译:
Object does not support this property or method
并且执行停止
HTML:
<div id="contenedor">
...
</div>
JavaScript的:
contenedor = document.getElementById("contenedor");
这适用于Firefox和Chrome。
答案 0 :(得分:3)
IE的某些(?)版本中存在错误,它为文档中的每个id值定义了全局常量。因此,当您编写contenedor = document.getElementById("contenedor")
时 - 注意它使用变量的div名称 - 它会看到您正在尝试设置该全局变量并抱怨您不能。您应该做的是声明一个新变量而不是设置全局:var contenedor = document.getElementById("contenedor")
答案 1 :(得分:0)
如果它只是document.getElementById('someid')
给你这条消息,可能是你的脚本放在HMTL的底部(在结束&lt; / body&gt;标签之前)将有所帮助。
如果要在将元素分配给变量之前加载元素,请使用
window.onload = function(){
contenedor = document.getElementById("contenedor");
};
答案 2 :(得分:0)
看起来你的javascript在DOM准备好之前正在执行。许多javascript库包含一个在DOM准备就绪时添加事件的机制,否则,可以使用正文onload
事件。
您可以尝试将javascript放在文档的底部,但这并不能保证在页面加载到足以允许浏览器构建DOM树之前不会执行代码。使用带有ready
或domready
事件的框架(如mootools或jquery)或使用正如上所述的正文onload
事件,你会好得多。
示例:
<html>
<head>
<script type="text/javascript">
var initPage = function() {
// do stuff
}
</script>
</head>
<body onload="initPage();">
<!-- page content -->
</body>
</html>