2011-04-06 163 views
0

当我在Internet Explorer中使用document.getElementById我得到这个错误:的document.getElementById在IE

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确定。

+1

Google翻译:'消息:对象不支持这个属性或方法' – Shaz 2011-04-06 19:51:02

+0

你可以发布HTML/JS吗? – Chandu 2011-04-06 19:51:46

+0

你可以发布,你的HTML代码和更多的JS.Looks,你的元素的ID属性没有定义。 – sergionni 2011-04-06 19:52:00

回答

0

如果仅仅是document.getElementById('someid')会给你这个信息,可能会把你的脚本放在HMTL的底部(正好在关闭< /正文>标签之前)会有帮助。

,如果你想成为舒尔将其分配给一个变量之前的元素加载,使用

window.onload = function(){ 
contenedor = document.getElementById("contenedor"); 
}; 
0

它看起来像你的JavaScript在执行之前DOM已准备就绪。许多javascript库包含DOM准备就绪时添加事件的机制,否则,可以使用正文onload事件。

您可以尝试将JavaScript放在文档的底部,但这并不能保证在页面加载到足以允许浏览器构建DOM树之前代码不会被执行。如果使用带有readydomready事件(如mootools或jquery)的框架,或者使用正文中提到的正文onload事件,则会更好。

实施例:

<html> 
<head> 
<script type="text/javascript"> 
    var initPage = function() { 
    // do stuff 
    } 
</script> 
</head> 
<body onload="initPage();"> 
<!-- page content --> 
</body> 
</html> 
3

有在一些版本的IE,其中,它定义为每一个值在文档中ID全局常量一个不好的特性(?)。所以,当你写contenedor = document.getElementById("contenedor") - 注意它使用div的名称作为变量 - 它看到你正在尝试设置该全局变量并抱怨你不能。你应该做的是声明一个新的变量,而不是设置全局:var contenedor = document.getElementById("contenedor")

+0

正是我在想......''var'丢失了 – 2011-04-06 20:35:41

相关问题