0

我在ASP.NET應用程序的文件後面的代碼中通過服務器端Java Script調用RadAlert。此RadAlert與IE7,IE9,Chrome和Firefox一起工作正常,但IE8拋出'Microsoft JScript運行時錯誤:無法獲取屬性'radalert'的值:對象爲空或未定義'。可以請任何人告訴我如何解決這個問題。 以下是密碼Microsoft JScript運行時錯誤:無法獲取屬性'radalert'的值:對象爲空或未定義IE8

string dialogMessage = "Record " + Session["SavedRecordID"].ToString() + " Saved Successfully"; 
string radalertscript = "<script language='javascript'> window.onload = function() {var oWnd = radalert('" + dialogMessage + "', 400, 140, 'Saved'); window.setTimeout(function() { oWnd.Close(); }, 3000);} </script>"; 
Page.ClientScript.RegisterStartupScript(this.GetType(), "radalert", radalertscript); 

謝謝。

+0

這是在您的本地還是在您部署的應用程序中? –

+0

它在我的本地機器上 –

+0

好的,當你部署時,你很有可能在所有的瀏覽器上都會遇到這種情況,因爲這可能是一個計時問題。 –

回答

0

在IE 8中構建radalert對象可能太遲了。由於ASP.NET AJAX組件使用的可能是不同的生命週期,因此您也可以嘗試(至少要消除我所說的是實際的問題):

Sys.Application.add_load(function(sender, e) { 
    var oWnd = radalert('" + dialogMessage + "', 400, 140, 'Saved'); 
    window.setTimeout(function() { oWnd.Close(); }, 3000);} 
}); 

你應該能夠從服務器渲染它,它的功能相同。

+0

感謝您的回覆Brian。我試過這種方法,但得到相同的錯誤。它在我的本地機器上。 –

+0

嗯......你在頁面上還是在母版頁上有一個RadWindowManager?如果您查看已在visual studio調試器中加載的腳本,您是否看到radalert的腳本?出現這種情況的原因是:1)導致組件創建失敗的原因,如頁面上的錯誤或2)使用radalert的代碼在載入radalert定義之前加載。 –

+0

我有你的代碼工作。對於其他人來說,爲了讓所有人都知道有一個額外的花括號,在處理java腳本後面的代碼時完全沒有注意到,所以只需在Brian的代碼結束之前刪除一個。非常感謝Brian。 –

相關問題