text/javascript和application/javascript的差異

前陣子處理一些MIME的設定問題,剛又看到有人使用下面方式呼叫javascript。不經想釐清使用javascript時應該使用哪個MIME?
  1. <script language="javascript" src="xxx/yyy.js"></script>  

查了一下RFC 4329-Scripting Media Types。看來不建議(obsolete)使用 text/javascript ,應該採用application/javascript 。

依照以往的經驗,各家瀏覽器不一定照者RFC作。看google、jquery的範例大都使用 text/javascript ,於是作了一個小實驗…
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">  
  2. <html>  
  3.     <head>  
  4.         <meta http-equiv="content-type" content="text/html; charset=utf-8">  
  5.     </head>  
  6.     <body>  
  7.     <script type="text/javascript" >  
  8.         document.write("text/javascript");   
  9.     </script>  
  10.     <script type="application/javascript" >  
  11.         document.write("application/javascript");   
  12.     </script>  
  13.     <script type="application/ecmascript " >  
  14.         document.write("application/ecmascript");   
  15.     </script>  
  16.     </body>  
  17. </html>  

我使用了 IE8、FireFox 14.0.1、Google Chrome 21、Safari 5.1.7、Opera 12.01測試。結果…除了IE8 只有顯示 "text/javascript" ,其他瀏覽器都是顯示 "text/javascript application/javascript application/ecmascript"。

看來…礙於IE的市佔率還是無法忽略的現實。保險一點,還是不要照RFC的建議… 依舊使用 text/javascript 吧~

留言