JavaScript代碼因逗號不規範導致IE不相容的問題_javascript技巧

來源:互聯網
上載者:User

在用ExtJS做前端開發的時候,發現系統可以在Google瀏覽器、Firefox下正常顯示,但是用IE瀏覽器開啟就會報錯,報錯資訊如:Expected identified, string or number。後來,檢查的代碼的時候發現,是由於js代碼中逗號用的不規範導致的IE不相容。

由於我是用eclipse來寫代碼的,下面我也就介紹怎麼用eclipse來解決這個問題:

例如有下面這麼一段不規範的代碼:

Ext.onReady(function() {var panel = Ext.create('Ext.container.Viewport', { layout : 'border',items : [{title : 'north panel',html : 'north content',region : 'north',height : 100,}, {title : 'west panel',html : 'west content',region : 'west',width : 150, // 這是備忘1}, {title : 'main panel',html : 'main content',region : 'center',/* 這是備忘2*/}]});});

可以看到,在100、150、center後面都有一個逗號(,),用IE啟動並執行話,其實是會報錯的。那麼既然代碼已經寫成這樣了,怎麼檢測到這個問題呢!

 

圖1:File Search

如上圖1所示,可以用eclipse的File Search功能,利用Regex進行搜尋,Regex為,\s*}。不過,這有個問題,只能檢索出上面的第一處錯誤,對於加了//或者/**/來注釋的情況,是檢測不出來。不過,你也可以用yuicompressor這樣的js代碼壓縮公用程式來壓縮代碼,壓縮的時候會將其中的所有的注釋全部去掉,然後再來檢測壓縮後的js檔案即可。當然,你也可以自己寫演算法來檢測,不過,這個對於普通人來說還是有難度的!

不過,我建議用另一個方法,就是利用外掛程式,我這裡用的是Spket外掛程式,Spket的官網是:http://www.spket.com/,可以到裡面去下載Spket的eclipse外掛程式,也可以直接在eclipse的market中下載,下載完以後安裝下這個外掛程式,然後將js檔案用spket開啟。

 

圖2:利用Spket檢測

如上圖2所示,可以發現Spket自動的檢測了代碼的不規範,將其中有問題的地方都標註了出來,我是建議用這個方法,因為可以在編寫代碼的時候,就發現問題,有助於寫出規範漂亮的代碼!另提一下,有些時候相容性是因為使用的對象是IE中不存在的,比如console對象,在Firefox和Google中是存在的,但是在ie中使用console.info就報錯了!所以,記得把一些不相容的對象從代碼中剔除掉!

以上給大家介紹了JavaScript代碼因逗號不規範導致IE不相容的問題,希望對大家有所協助!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.