IE瀏覽器存在的setAttribute bug

2021-08-30 21:04:49 字數 768 閱讀 1225

ie的setattribute中與標準瀏覽器的有許多不同,主要表現在ie對setattribute的功能上有些限制,就是不能用setattribute來設定class、style於onclick等事件的值以及設定name屬性,那這樣就會導致setattribute在ie瀏覽器裡失去很多的用途!而在ie6,ie7中,如果動態生成input元素,是無法為其設定name屬性的。不過當然這bug已經在最新版的ie8中被修復,詳情可以瀏覽微軟官網給出的資料。由於name屬性對表單元素非常重要(在提交表單時,與value屬性組成鍵值對,傳送到後台),因此必須留意這個bug。

解決辦法有兩個,如用innerhtml,覺得innerhtml真是乙個偉大的發明

另乙個利用ie強大的createelement特徵,它能在建立元素的同時,連屬性也一起建立。

但name只是冰山一角,setattribute在設定屬性時,有許多屬性在ie下與標準瀏覽器的命名是不一樣的,看一下jquery,發現它也是不全的。許多地雷埋在這裡,總有乙個你遲早會中的。下面是乙個詳盡的參照表:左邊為標準遊覽器的,右邊是ie的。

var iefix = ); 

}else{ 

form.elements.test.setattribute(「onfocus」, 「alert(this.name)」); 

在ie6與ie7中也不能用setattribute設定樣式:dom.setattribute(」style」,」font-size:14px」)

這時要統一用dom元素的style.csstext屬性賦值比較安全。

IE 瀏覽器修復

ie8 瀏覽器經常出現 網頁上的js指令碼錯誤的提示,大多數不影響正常使用,但在開發中這種現象比較難處理,ie瀏覽器安全效能級別高,js指令碼驗證要求比較嚴格,這是我在做專案時遇到的問題。ie9 ie10 ie11 360 firefox 360 sogou瀏覽器上都能正常執行的程式在ie8上就不行...

IE瀏覽器的判定

以前最短的ie判定借助於ie不支援垂直製表符的特性搞出來的。var ie v1 僅僅需要7bytes!現在只要6 bytes 它利用了ie與標準瀏覽器在處理陣列的tostring方法的差異做成的。對於標準遊覽器,如果陣列裡面最後乙個字元為逗號,js引擎會自動剔除它。var ie 1,var ie 1...

js 判斷瀏覽器是否IE瀏覽器

蒐羅各種方法來判斷瀏覽器是否為ie瀏覽器 1.最簡單的 來自 if 1,侷限 本判斷方法經過判斷在ie7 ie8 ie8相容模式 在ie9 ie10 ie11 不起作用 解釋 alert 1,2 相當於alert 1,2 tostring 這在ie與非ie上都相同,都會彈出 1,2 alert 1,...