2011-04-06 193 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

相關問題