IE6 JS 編碼

問題描述:

       頁面引入一個js文件,其中定義了函數或對象,然後在頁面中調用函數或對象時,在IE6會報“語法錯誤”或“缺少對象”。在IE6+或者IE7卻運行正常。

問題分析:

       這個對象在引入的JS文件中是存在的,因爲在IE6+以上的瀏覽器都可以正常運行。這個問題在於文件編碼上,如果JS文件編碼與當前頁面的編碼不一致,就可能導致在IE6中頁面不能正常獲取和解析JS文件中的內容,在IE6中,默認引入的文件和頁面的編碼是一致的。在IE6+以上的瀏覽器中,一般瀏覽器會自動識別每個外部文件的編碼並進行解析;

問題解決:

    一:引入js文件時加charset屬性,保持與頁面編碼一致;  

    二:修改引入文件編碼格式;  

    三:新建一個文件格式同頁面編碼格式一致,複製粘貼內容;(個人建議第三種方法,但建議在導入js時加上charset屬性!)

發現問題:

      由於重裝系統,發佈項目後發現js報錯:報語法錯誤還有缺少對象。鬱悶以前系統是ie7,重裝系統後爲ie6.剛開始以爲是瀏覽器版本問題,以爲頁面導入的js裏面有ie6不兼容的代碼!

      所以最後把js一行一行註釋掉,當最後js文件全刪掉了,還出現上面錯誤。

      ------超級鬱悶以前代碼也沒事,怎麼重裝個系統就壞了~最後找出以前項目發佈了,在ie6下沒有錯誤,代碼完全一樣。

      -----不知還能否用鬱悶一詞不?想了半天,想到編碼問題。以前項目編碼爲gb2312,現在項目改爲UTF-8加上後沒起作用,再到js該編碼格式改爲UTF-8運行也不行。最後新建一個js文件編碼格式改爲utf-8,發佈OK。

       暈死,一般編碼修改(1).增加charset。(2).修改文件編碼格式。還到tomcat下查看也已經修改過了。不知道怎麼回事!可能要全刪了在發佈吧!!!不過問題總算解決~要是不重裝系統,還發現不了這個小bug----記下以後防止這種錯誤發生!

 

 

           下了個不js文件來用,放到ff,chrome,IE8一切都正常,到ie6下報錯,居然提示找不到那個函數,報“錯誤’xx’未定義”。把調用函數代碼刪除掉居然報後面一個括弧錯誤。
         

           用編輯的器發現字體顯示得和頁面不一樣。因爲我喜歡用utf-8的。發現js文件的編碼是gb2312。然後重新建個js文件把原js文件utf-8編碼裏的代碼複雜到記事本再複製進去。就ok了。

          IE6該是退出歷史舞臺的時候了,鬱悶之,讓我思考了好久,明明有的居然硬是找不到,想抽他Y的,呵呵

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章