孤僻不群的IE7、兵臨城下的IE8
網友報了一個有趣的問題,他寫了一段Javascript Code,動態新增<input type="radio" name="r1">後再變更name屬性,試圖改變其群組性。但這段程式在IE7下不管用,在FF上卻運作正常,用IE Developer Toolbar檢視,發現name屬性的確被修改,但在IE裡所有的radio仍被算成同一群組,呈現互斥。
我把這個問題簡化,用Mini jQuery Lab做了測試,Body HTML為:
<div><input type='radio' name='a'> <input type='radio' name='a'></div>
<div><input type='radio' name='a'> <input type='radio' name='a'></div>
Script為:
$("div:last input").attr("name", "b");
測試各家瀏覽器,熟悉的情境再度上演。IE一國,其他的瀏覽器一國(FF, Chrome, Opera, Safari),不合群的IE7是唯一無法透過動態改變radio name調整群組性的瀏覽器。
最後搬出IE8來跑了一下,Good! IE8終於不再搞孤僻,乖乖地跟大家一樣,可以透過修改radio name來調整群組性了。
順道一提,IE8已經計劃在3/20推出繁體中文版,並從4/30起透過Windows Update方式強迫強力部署,由於IE8瀏覽器的行為與IE7存在不少差異,屆時應該會有一些原本IE7裡看得好好的網站在IE8裡面目全非,網站開發人員應留意。(讓人想起上回IE7全面更新)
如果發現網站還沒有準備好接受IE8的洗禮,目前有兩個方法可以避免立即的衝擊:
不過,IE8更貼近W3C的標準,在安全及效能上也有大幅改良,網站開發人員應該還是要設法讓網頁能在IE8裡正常顯示,才是長久之計。畢竟,躲得了一時,躲不了一世,出來混,遲早要還的。(誤)