2011-02-07 69 views
1

我有這樣的代碼:我的腳本標記會影響頁面呈現嗎?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
     <script type="text/javascript" href="http://code.jquery.com/jquery-1.5.min.js" /> 
     <title>JQuery Demo 1</title> 
     <style type="text/css"> 
      #box 
      { 
       background-color: #ff0000; 
      } 
     </style> 
     <script type="text/javascript"> 


     </script> 
    </head> 
    <body> 
     <div id="box">----Text----!</div> 
    </body> 
</html> 

當我包括來自谷歌Jquery的文件,在div「盒子」不再是紅色的。當我刪除JQuery文件時,它再次變成紅色。爲什麼?

+0

此外,當我刪除:該div完全消失! – Hirvesh 2011-02-07 12:47:19

回答

6

嘗試而不是使用您的script元素的自閉句法,例如,

<script type="text/javascript" src="http://code.jquery.com/jquery-1.5.min.js"></script> 

...和正確的屬性指向一個腳本文件是src,不href

See it on jsFiddle

+0

Bah,51秒太晚:) – 2011-02-07 12:48:51

+0

謝謝,解決了這個問題。我想知道爲什麼會發生這種情況,如果你不介意的話。 :) – Hirvesh 2011-02-07 12:49:23

2

在XHTML <script />的意思是「一個完整的腳本元素」(注意,瀏覽器根據內容類型HTTP標頭而不是Doctype決定文檔是XHTML還是HTML)。

在HTML <script />意思是「與一個>字符開頭的腳本開始標記」,但由於歷史原因,它被視爲「A開始標記與我會忽略一個有趣的屬性的腳本」。

所以,你有你打開一個腳本元素,但它不會關閉,直到</script>標記爲腳本元素。 <style>元素位於腳本內部,因此它被視爲JavaScript而不是HTML。由於腳本指定src,內聯腳本(包括樣式元素)將被忽略。

相關問題