2011-08-20 128 views
0

當我開始我的index.php它調用具有下面這段代碼我的JavaScript文件:在Internet Explorer 6,7,8 JavaScript錯誤,「爲空或不是對象」

enter image description here

時應用程序啓動時立即出現此錯誤:

enter image description here

,這隻能在互聯網上探險發生,對的index.php沒有「txtName的」,因爲。每個頁面都要調用js,有什麼辦法可以改進這個功能? tath我不需要手動把每個頁面的js?

任何人都知道我該如何解決這個問題?非常感謝您......

+1

這意味着IE不能找到你的元素(id爲「txtName的」)。更多的代碼(帶有HTML標記)將幫助我們理解爲什麼 –

+0

我在原文中添加了問題的答案 –

回答

2

你爲什麼不把有條件的這種方法: 在這種情況下:

var iId = document.getElementById('txtName'); 
if(iId != null) 
{ 
    // Processing 
} 
4

更新:

更新後的問題 - 你可以測試元件首先

function focus(){ 
    var txtNameObj = document.getElementById('txtName'); 
    if(txtNameObj){ 
    txtNameObj.focus(); 
    } 
} 

這應該避免與它的錯誤沒有被定義。

原始

我只能猜測有兩個問題之一:

a)您的DOM還尚未加載(因此即使該ID將存在,但它尚未)

b。)您沒有具有該ID的元素。

如果元素確實存在,一定要在確定元素已加載後才調用focus函數。例如你可以將它作爲腳本標記放在身體關閉之前。

<script> 
     focus(); 
    </script> 
    </body> 
</html> 
+2

由於腳本標記是同步執行的,或者是「阻塞」,所以您還可以在腳本需要在來源中。 –

相關問題