隨筆 近期前端開發中IE6的一些詭異神奇bugs

2022-03-11 19:38:00 字數 1703 閱讀 4529

在這個萬惡的ie6還生存的年代,我們很多時候都會遇到一些莫名其怪的詭異bugs,而這些很大部分都是**與ie6。

1。神奇的cursor 

1<

a href

="#"

onmouseover

="this.style.cursor='pointer'"

onmouseout

='this.style.cursor="none";

>測試a

>

這段看起來很普通的**,卻蘊藏著乙個bug,就是在ie6下,當滑鼠離開時,a標籤的樣式cursor:url("none");同時會產生乙個404的請求,其它瀏覽器,

一切正常。解決方案:cursor="default";就沒事了。

2。神奇的a標籤位址

1<

a href

="#"

id="a"

>連線a

>23

<

script

>

4document.getelementbyid("a

").href="

[email protected]";

5script

>

當動態修改a標籤的href的值,其值存在email的格式,ie6就會很智慧型的把innerhtml的值也改為href的值,其它瀏覽器一切正常。

3。神奇的a標籤aborted

我要跳轉

在ie6下點選此連線時,不會跳轉,反而會返回乙個aborted的狀態。其它瀏覽器均正常。

解決方案:在最後return false;就可以了。 

4。奇怪的tr元素

vartr 

=document.createelement("tr

");alert(tr.cells.length);

你會發現,在ie6先,是會報錯的,cells未定義。在其它的瀏覽器,會彈出0;

如果你將tr元素新增進table中,則ie6也會彈出0;

5。奇怪的form與iframe

<

form 

action

="#"

method

="post"

target

="iframeform"

>

<

input 

type

="submit"

value

="submit"

/>

form

>

<

iframe 

name

="iframeform"

display

="none;"

>

iframe

>

乙個很正常的需求,就是希望提交表單後,不重新整理頁面。

其中一句:history.go(-1);

後來知道原因:就是歷史記錄,所以iframe裡面的src我就設定連線到乙個小圖示。但又出問題了,其它瀏覽器都可以,就是ie6提交不了。。。

又發現原因:圖示的網域名稱與當前網域名稱不相當,ie6提交不了給它,所以,最終換成本網域名稱的,問題就解決了。 

6。順帶提乙個chrome的問題,當你定義乙個全域性變數:var status = {};

之後typeof status,在chrome下為string,在其它瀏覽器下為object。估計是跟window.status有關。 

暫時就這麼多。。。 

IE6的一些相容問題

1 css相容問題 1 ie6不識別html5標籤 解決 引入html5shiv.js庫 2 ie6元素左右浮動,子元素設定高度後,父元素的浮動消失 解決 給子元素也加上浮動 3 ie6下第一塊元素浮動後,第二塊元素加的margin left值等於第一塊元素的寬度,會有間隙問題 解決 第二塊元素去掉...

IE6的一些相容性問題

總結一下ie6相容性的部分小問題 1.ie6的hack問題 在css屬性前加上下劃線 這個屬性就是ie6認識的專有屬性。可以用它解決一些ie6的相容問題。例如 background color red 只有ie6才認識這個屬性2.ie6不支援小於12px的盒子。解決辦法是給盒子設定乙個 font s...

IE6的一些小缺陷

最近在做乙個簡單ajax驗證時發現了個問題,在ie6下請求總是失敗。getjson 後來發現,服務端發回的響應經過了gzip壓縮,但ie6的xmlhttprequest物件不會自動對相應進行解壓,導致後續json解析錯誤。但在其他高版本瀏覽器中正常。嘗試將服務端gzip壓縮關閉後一切正常。首先,嘗試...