剛剛跟著demo學習的過程中遇到了一個問題:
<script type="text/javascript" src="jquery-1.1.3.pack.js" /> 這樣的寫法貌似是不能執行的。
<script type="text/javascript" src="jquery-1.1.3.pack.js" > </script> 只能這樣結束。
一直不知道什麼原因 一點點排除才發現的。
去百度了一下:
比如<script>標籤,當前部分瀏覽器就不支援<script />這種在開始標籤中直接關閉的寫法。
我們很容易會認為,引用外部指令碼檔案的<script>沒有內容,那是否可以直接在開始標籤中關閉<script>,寫成下面這樣呢? <script type="text/javascript" src="xxx.js" /> 實測結果告訴我們,這樣做是有問題的。
某些瀏覽器不認這種寫法,它們會將緊接在<script />標籤後面的內容都當作指令碼內容來處理,直到遇見下一個</script>關閉標籤。
避免這個問題也很簡單: 對於<script>標籤,永遠都使用單獨的關閉標籤</script>,這樣所有瀏覽器都能夠按照預期的效果來解析:
<script type="text/javascript" src="xxx.js"></script>
具有類似問題的標籤還有一些,比如<iframe>。解決辦法同上。
進一步說,想要徹底解決這一類問題的話,請將所有標籤的開始和結束都分開寫吧: <img src="xxx"></img> <hr></hr>
順帶一提,這樣還能解決另一個問題:
在開始標籤中關閉的話,斜槓前必須留有空格——很多時候人們會很容易漏掉這個空格,據說這樣某些瀏覽器的解析也會出問題。
既然我所有的開始結束標籤都分開寫了,那這個問題不是自然就沒有了麼?
這麼做太極端?那就只記住這幾個特例吧:首先就是<script>和<iframe>。
目前看來,WinXP SP3下IE6/7/8和FF3都有這個問題的,Opera10/Chrome5/Safari5則沒有。
不過另一個<iframe>標籤同樣的問題,上面這些瀏覽器則好像無一倖免了。