兩個讓人無語的IE BUG

2021-08-29 08:49:43 字數 1300 閱讀 2854

兩個讓人無語的ie bug

很多人總是拿ie的安全說事,其實多數是人的問題,而ie對html/css的處理上的bug才是最令人頭痛的,特別是那些毫無邏輯性而言的問題,下面的兩個就是。

bug 1 - ie6居然分不清name和id

最簡化重現**:

邏輯很簡單,我希望用js得到該頁面名為txt的單選框個數:document.getelementsbyname('txt').length。猜猜ie6會顯示多少:4。因為ie6把id=txt的元素也算上了。貌似這個bug很好發現原因,但真實的html頁面元素很多,不費一番功夫不會想到這是ie的問題。

解決辦法:當你需要使用getelementsbyname函式時,千萬不要讓頁面的name元素和某元素的id重名。

bug 2 - 使用帶背景的iframe元素導致iframe產生怪異的行為

如果重現上面那個bug只要睜大眼睛的話,下面這個bug會另你試圖給身邊的朋友推薦firefox。

最簡化重現**:

把以下內容儲存為page.html

把以下內容儲存為frame.html

document.getelementbyid('btn').disabled=true;

return true;

}<-->

然後準備乙個btn.gif檔案,把btn.gif、page.html和frame.html上傳到同一資料夾,訪問page.html檔案。

這個組合為了實現乙個效果:page.html中使用iframe包含乙個表單,使用者在 iframe 中的表單(由frame.html輸出)提交表單(乙個例子就是donews首頁頂部的登入iframe),在提交後禁用提交按鈕防止重複提交。但是就這樣乙個簡單的思路在ie中會出現起個奇怪的行文:當表單提交完全完成後,ie的狀態列會出現乙個從0開始的新進度條,要等將近2分鐘才會消失。

為了挖出上面的最簡話**,我花費了整整一下午的時間,從龐大的web應用中剔除無關的**,儲存同樣無關的**。導致這個bug的表面原因是document.getelementbyid('btn').disabled=true;一句,當試圖在提交表單後禁止該button(或訪問表單任意元素的屬性)時就會產生這個現象。但真正的罪魁是btn的背景,當刪除#btn中的background: url('btn.gif') no-repeat;(或設定乙個不存在的檔案做背景)後,這個bug就會自行消失,看來那個進度條是在試圖載入btn.gif檔案。

解決辦法:當你需要提交iframe中的表單時,要麼不要修改iframe中的其它元素屬性(包括不能禁用提交按鈕防止重複提交),要麼不要給提交按鈕或其它iframe元素設定背景。這對開發乙個重視美術效果的**確實是無理的要求。

精典的讓人無語。。。

1.風光的背後,不是滄桑,就是骯髒。2.有一種感情叫無緣,有一種放棄叫成全。3.沒有比記憶中更好的風景,所以最好不要舊地重遊。4.最好的東西,往往是意料之外,偶然得來的。5.金錢就像水一樣,缺了它,會渴死 貪圖它,會淹死。6.公主的純情寫在臉上,巫婆的深情種在心裡。7.世界上最痛苦的事就是 笑臉相迎...

兩個 IT 人的冷笑話

昨天晚上和 laura 出去吃飯,吃過飯走回來,路蠻遠的,慢慢忍不住了,人有三急,可路邊找不到廁所。忍啊忍,來的時候記得路邊有家小書店,書店裡估計有廁所,走啊走,忍啊忍,總算看到書店了,進去假裝買書,想用人家廁所還擔心不給用,於是挑了一本書,然後 裝作 隨口問道 有洗手間嘛?服務員一指 前面就是。急...

讓兩個Div併排顯示

一 使用display的inline屬性 aaaa bbbb 二 通過設定float來讓div併排顯示 1111 2222 2222 2222 三 對於兩個div併排,左邊為絕對寬度,右邊為相對寬度的,需要用到這種布局的情況比較多見,如左邊為導航,右邊為內容的頁面 1 將最大的容器padding l...