ie8對js的陣列,採用屬性遍歷的方法,解析不一樣的地方:
有如下的**
array.prototype.contains = function (str)
}return
false;
}var tmp = new array();
tmp.push("1");
tmp.push("2");
tmp.push("3");
alert("遍歷屬性");
for ( var i in tmp )
alert("遍歷陣列");
for ( var i=0;i如果是非ie8瀏覽器,例如(ie7、ie9、chrome、ff,僅測試這幾種)
通過屬性和陣列遍歷,其結果是一樣的。
但對於ie8,結果會有一點小小的差異,在ie8下會把原型鏈擴充套件方法當做乙個屬性輸出,大家可以測試一下。
之所以發現這個差異,也是因為解決了乙個詭異的bug,有同事在**裡面使用for ( var i in tmp )這種方式來遍歷陣列的每個元素,如果正好對array定義了原型鏈方法,則會發生這個問題。
所以建議:如果遍歷陣列元素,還是應該採用標準的寫法 for ( var i=0;i
ie8下修改input的type屬性報錯
現在有乙個需求如圖所示,當使用者勾選顯示明文核取方塊時,要以明文顯示使用者輸入的密碼,去掉勾選時要變回密文,剛開始想到的就是修改輸入框的type來決定顯示明文還是密文,使用jquery的attr來做試驗,測試結果是chrome,firefox,ie9 都是好的,在ie8以下就會報錯,查詢了下原因,i...
IE8的 JS 引擎如此不堪(二) 解決方案
3 改用彈窗,使用showmodaldialog來顯示,在chrome下,彈窗行為與ie不一樣,而且還會被攔截 無法用統一的方案來解決,最後決定使用混合方案,如果是ie,且為10以下版本,採用彈窗,如果是其他瀏覽器,採用原有彈出層的方案。因此這樣就簡單了 js a.image click funct...
對Vue為什麼不支援IE8的解釋之一
在j ascript物件中有乙個object.defineproperties obj,props 方法 該方法主要用來給指定物件新增自定義屬性 可以接收兩個引數 第乙個引數 要定義或者修改屬性的物件 props引數 要定義其可列舉屬性或修改的屬性描述符的物件。物件中存在的屬性描述符主要有兩種 資料...