开源WebMail客户端Intouch2.2beta导致IE6崩溃的原因和修改方法
單位用James+mySql+intouch2.2beta+Tomcat構建企業郵箱,使用IE6登錄Intouch界面時會導致瀏覽器崩潰,IE6無顯示退出,并彈出錯誤提示。搜索后發現原來是IE6的bug導致崩潰,常見的有六種情況會導致崩潰,“CSS教程:匯總讓IE6崩潰的幾種方法”這篇文章在網上被大量轉載,隨便就可以搜索到一大堆。分析Intouch的界面和出現錯誤的時機,可以判斷錯誤應該屬于第一種情況,即“設置scrollbar-base-color,css里給table做了定位,再通過js改變其定位IE6就崩潰了”。經過試驗,產生這種崩潰錯誤需要一下三個條件:
1、定義CSS style,包括css文件或內嵌css,在其中html或body定義有scroll-xxxx-color屬性定義的,如crollbar-base-color、scrollbar-highlight-color等等。我測試的結果是任何一種帶有scroll color的屬性設置都會導致錯誤。
2、一個DIV元素或Table元素用CSS文件或嵌入css或用元素的style屬性設置了元素的絕對位置。
3、使用javascript腳本改變元素的原來位置值。
同時滿足以上3個條件,就會導致IE6崩潰。
對于Intouch2.2來說,許多常用的css文件中都設置了scroll-xxxx-color屬性,導致IE崩潰的是Intouch的常用選項設置layout。是一個ID為“preferences”的DIV元素,在all.css中設置了其固定位置為頂端-300px,在顯示該元素時使用了免費的Rico組件,用方法rico.effect.position對該元素進行動態滑動顯示,也就是不斷改變該元素的顯示位置,達到從頂端至下逐漸滑動顯示的效果。也正是因為如此,導致上述三個條件都滿足了,因此也就使IE6崩潰。注意到IE7修補了相關bug,不會崩潰。
修改的辦法就是破壞上述3個條件中的任一個,經過權衡,我的修改辦法是去掉滑動顯示,讓“preferences”直接固定在瀏覽窗口中間位置,只是顯示和隱藏,不在滑動顯示。修改的代碼在layout.js中,修改showPreferences()、hidePreferences()方法即可。
轉載于:https://www.cnblogs.com/ronghaoyue/archive/2010/01/30/1660267.html
總結
以上是生活随笔為你收集整理的开源WebMail客户端Intouch2.2beta导致IE6崩溃的原因和修改方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: labview获取窗口句柄_API---
- 下一篇: 粒子群算法