2014-03-26 60 views
-2

可能有人幫助請,卻困以下錯誤:'document.Form1.imgLoading' 爲空或不是對象

'document.Form1.imgLoading' is null or not an object control.js, line 55 character 2

那就是:

55號線:document.Form1.imgLoading.style.width=370

來源:

function setLoading(){ 
    var strPath = "../images/" 
    var strFName = "searchingText.gif" 
    var strSearchPath = "" 

    //15/2if (!document.Form1.TextBoxLangID.value == "") { //SO LANG USED 
    // strSearchPath = strPath + document.Form1.TextBoxLangID.value + "/brand/" + strFName 
    //} 
    //else{ 
    // strSearchPath = strPath + "brand/" + strFName 
    //15/2} 

    //document.Form1.imgSearchingText.src = strSearchPath 
    document.Form1.imgLoading.style.width=370 
    document.Form1.imgLoading.style.height=328 
    document.Form1.imgLoading.style.left = 327 
    document.Form1.imgLoading.style.top = 220 
    document.Form1.imgLoading.style.zIndex=2000' 
+0

此處在index.aspx中的javascript SimonG88

+0

這是說你沒有名稱爲「imgLoading」的元素。 – epascarello

+0

爲什麼在虛擬機上運行它時,這隻會是一個問題,它也會在沒有錯誤的其他虛擬機上運行。這是一個IIS問題? – SimonG88

回答

1

與您的代碼的問題是你是指像form.controlname。在ASP.Net中,根據母版頁/嵌套控件配置生成控件名稱,如ctl $ imgLoading等。

Better avoid document.Form1.imgLoading and make use of referring it based on id using native document.getElementById()

如果您在.aspx網頁腳本代碼,請使用下面的代碼來引用該元素

var imgLoading=document.getElementById('<%= imgLoading.ClientID %>'); 
imgLoading.style.width=370; 

在情況下,如果你有script in JS file 確保您設置ClientIDMode=static從支援ASP.Net 4.0用於.aspx頁面中的imgLoading控件,然後

var imgLoading=document.getElementById('imgLoading'); 
imgLoading.style.width=370; 
+0

謝謝Murail,我會記住這個! – SimonG88

0

我沒有足夠的信譽發表評論,但我只想說,如果你的<script>標籤位於<head>部分,將腳本標籤放在正文部分的後面,或加載文檔的腳本onload

這是因爲您的文檔的<body>部分中的圖像尚未加載,因此它是null or not an object

希望有所幫助。

0

如果imgLoading是一個ASP:圖像控制,那麼你必須使用一個代碼找到它:

document.getElementById('<%= imgLoading.ClientID %>').style.width = 370 
+0

我剛試過這個,它給了我'對象不支持這個屬性或方法' – SimonG88