我一直在JavaScript問題上掙扎了好幾個月,其中有一些屬性的數組,然後檢查其中一些屬性以決定是否向用戶顯示消息。Javascript中初始化數組的初始值在不同系統上的初始值是多少?
現在,在大多數系統(特別是更新的瀏覽器)上這一切都很順利,但在我的客戶端的一些IE7計算機上並沒有那麼多。
現在我剛剛發現的地方在我的代碼初始化象下面這樣一個新的磁盤陣列,但實際上從未設置「完成」
var qar=new Array('question_no','pos','done');
qar['question_no'] = 1234;
qar['pos'] = 1234; //dont mind these numbers
在一些for循環後來我檢查值:
//check if this question was already shown
if(qar['done'])
continue; //stop here, don't show message
//set done to true, so that this question will not be shown again
qar['done'] = true;
window.alert('messaged!');
再一次出現錯誤的是,有時(實際上很常見,但並非總是如此)在IE7中根本沒有顯示該消息。我知道qar ['done']在初始化後應該是未定義的,這使得我的代碼可以正常工作(在Chrome中),但是在IE7中這種情況可能會以某種方式發生處理不同?例如,qar ['done']不是未定義的,而是一些隨機值,因此有時被認爲是偶然的?或者這是一個愚蠢的想法?
如果這不是問題,那麼我不知道是什麼..
提前感謝!
嘗試QAR [ '做'] ==未定義警報( '傳遞消息'); –
@Jurgen:還有疑問嗎?我在下面看到一個有效的答案。 – 2012-06-13 14:06:11