我在項目中使用Google Navigation圖表。爲什麼javascript indexOf()方法在從C#代碼隱藏中調用時拋出錯誤?
當我在客戶端(.aspx頁面)運行javascript代碼時,一切正常,但是當我將它放在代碼後面並回顯/寫出來(通過Response.Write())時,它會引發錯誤,特別是在JavaScript代碼嘗試調用數組上的indexOf()方法的地方。
我試圖檢查錯誤的原因,但我得到的唯一信息是,這是IE8和早期與indexOf()方法的問題 - 這不能是我的問題,因爲正如我說的那樣很好,當我直接從客戶端調用它時 - 它只是給出了代碼隱藏的問題。
這是特定的錯誤我收到:
0x800a01b6 - 微軟JScript運行時錯誤:對象不支持屬性或方法 '的indexOf'
這將正常工作(客戶端):
for (var i = 0; i < data.getNumberOfColumns() ; i++) {
if (i == 0 || defaultSeries.indexOf(i) > -1) {
// if the column is the domain column or in the default list, display the series
columns.push(i);
}
....
但是這將拋出一個錯誤(代碼隱藏):
htmlJS += "for (var i = 0; i < data.getNumberOfColumns() ; i++) {";
htmlJS += "if (i == 0 || defaultSeries.indexOf(i) > -1) {";
// if the column is the domain column or in the default li";st, display the series
htmlJS += "columns.push(i);";
htmlJS += "}";
....
Response.Write(htmlJS);
有沒有人知道爲什麼這個錯誤只發生在代碼隱藏?
必須有一些其他的區別。正如你所說,IE8中沒有Array.indexOf()。 –
什麼是'defaultSeries'?它是一個字符串還是數組?它的典型內容是什麼? –