最近做的東西需要兼容IE……啊真是令人憂傷……
解決低版本IE的buggy inline-block
低版本的IE只對本身inline的元素能用inline-block,而本身為block的元素需要設為inline。此外,如果想要讓這個buggy的inline-block生效,還需要讓元素具備hasLayout,常見的方法是設置zoom。如果想繞過低版本IE又保持對其他瀏覽器的兼容,可以這樣:
.xx { display: inline-block; *display: inline; // IE7- only hack zoom: 1; }
參考Inline block doesn't work in internet explorer 7, 6
jQuery UI 1.7 的 Draggable 在 IE9 無法使用
哀傷地要使用jQuery UI 1.7 版本帶的Draggable,但是在IE9下無法使用(i.e.完全不能用233 根本拖不了),原因是IE9的鼠標事件更新后舊版本的jQueryUI沒有對它開例外,當成了更低版本的IE去處理,解決方法在這里:jQuery UI does not work on IE9
將_mouseMove的
if ($.browser.msie && !e.button)
改成
if ($.browser.msie && document.documentMode < 9 && !e.button)
為IE9及更高的IE添加例外即可
IE9下出現javascript無法正常生效,按F12后恢復正常
這是因為IE8/9默認沒有console,所以如果代碼里殘留了類似console.log的引用就會報錯,整個js掛掉,參見這里,解決方法是將帶console的語句刪掉(反正一般也是調試用的,刪了無妨),或者用類似HTML5 Boilerplate里的解決方案