2006年12月23日

當掉 IE ,用 CSS 語法就可以讓 IE 強制關閉

前幾天晚上我發了一篇文章在部落格上,當時我用 Firefox 觀看很正常。隔天我在公司用 IE6 觀看那篇文章時, IE6 意外出現「MSHTML.DLL 執行錯誤,瀏覽器即將關閉」的錯誤訊息。後來我試了許多電腦,無一倖免, IE6 都會當掉。


IE瀏覽器發生問題,必須關閉

我不是第一次碰到 IE 無端當掉的情形 (IE7 真能良好支援 CSS 嗎?)。我一向強調編輯網頁時, HTML, HTML DOM, CSS 都要使用 W3C 標準規範的內容,甚至連 JavaScript 也要用 ECMA-262 標準規範。但詭吊之處在於,儘管我使用的是標準語法, IE 仍然頻繁地發生錯誤。我仔細追查了這次的問題的原因,查出原因竟然在於 CSS 。只需要用簡單的 CSS 語法,就可以當掉 IE (我只測過 IE6 ,沒試過 IE5.5 及 IE7 )。當掉 IE 的網頁內容列於下。

這個網頁內容其實就是樂多網誌的段落結構樣板。而 CSS 的內容,只是設定讓每篇部落格文章的每個段落的第一個字,以兩倍大小突出,產生類似文繞圖的效果。讓 IE 當掉的內容重點在於:

  1. 嵌套的 CSS 宣告 .main p:first-letter,以及邊框樣式定義 bordermarginpadding 也可以。
  2. a 標籤 (連結) 的邊框定義 border
  3. 區塊 (div class=main) 中的段落 (p 標籤) 內容以 a 標籤開始。亦即段落內容一開始就是一個連結。

只要湊齊這三個要件, IE 就會發生 mshtml.dll 執行錯誤而強制關閉的結果。我提過這種情形我不是第一次碰到,還有其他的 CSS 內容可以當掉 IE 。各位有興趣可以試試 IE7 是否修正這些問題了。我不建議試用在別人的網站上,令別人的網站當掉不明不白。若將這種內容植入他人網頁中,其惡意程度不亞於病毒,在 IE 仍然佔 8 成使用率的情形下,令 IE 的使用者無法觀看對方網頁內容的行為,形同癱瘓對方網站。


Posted by shirock at 樂多Roodo! │17:24 │回應(4)引用(0)電腦技術
樂多分類:網路/3C 共同主題:CSS設計排版 工具:加入樂多書籤編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/2592969
回應文章
IE 7 沒問題。
Posted by Amauds at 2006年12月23日 19:50
謝謝 Amauds 回應。

IE6 趁早丟到歷史的灰燼中。讓我們祈禱 IE 的使用者趕快全部升級到 IE7 吧。如果是用舊作業系統而無法升級者,也快點換成 Firefox 或 Opera 。
Posted by 遊手好閒的石頭成 at 2006年12月25日 02:17
我是大陸區簡體中文版WINXP,運行后IE6沒有問題。
Posted by 4google at 2007年05月8日 23:41

我的電腦 IE6 也沒有問題.
Posted by Allen at 2007年11月27日 20:45