IE6下js通過css隱藏select的一個bug

來源:互聯網
上載者:User

今天遇到一個問題, 當隱藏表格行 Tr 時 
$id("tr_" + id + "_1").style.setAttribute('cssText',"display:none;");,
表格行 Tr 裡面的 select 在 IE6 中隱藏不了,還是會顯示在頁面當中。想單獨設定 select 的樣式為隱藏
$id("new_attpm_id2_" + id).style.setAttribute('cssText',"display:none;");
也隱藏不了,上網搜尋找到文章《IE6下,js通過css隱藏select的一個bug》,原來這是 IE6 的一個 Bug ,可以通過 style.display = "none";使其隱藏。
最終代碼如下 $id("new_attpm_id2_" + id).style.display = "none"; 問題順利解決。

請在ie6下開啟:ie6_js_hidden_select_bug.html

通過:

document.getElementById('J_Test').style.display = 'none';
可以隱藏select元素。

但是通過:

document.body.id = 'page';
配合css代碼:

#page select { display: none; }
在ie6下,無法隱藏select元素。
嘗試position, setTimeout, 改變zoom到1.001等方法,均失敗。

想起ie6下,臭名昭著的select需要用iframe遮罩的bug,估計和上面的bug根由是一樣的:在ie6下,select是windowed element,其表現和普通的HTML elements有本質上的區別。至於究竟為何?估計只能去看微軟的源碼了。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.