2009-06-08 31 views
0

繼我last question,我想知道,如果目前的瀏覽器可以讀取屬性值without any quotes,即使值包含一個斜槓,如:瀏覽器可以理解未引用的屬性值嗎?

<script src=/path/to/script.js type=text/javascript></script> 

將它,而不會引起DOM解析錯誤和破壞工作整個文件?

+0

請只要在需要的時候逃脫引號,不要讓任何人通過這種眼睛流血的經歷。 http://en.wikipedia.org/wiki/Escape_character – macbirdie 2009-06-08 10:21:04

+0

如此簡單。 – 2009-06-08 11:12:17

回答

1

只要它們在值中沒有空格,它就在HTML4/5中有效。它在XHTML中是無效的,儘管它仍然在一些(所有)瀏覽器上正確呈現。

使用快速示例HTML文檔(在答案結束時),我使用Firefox 3.5 Beta 4,Google Chrome 2和IE 7對此進行了測試。示例文檔還使用HTML 4 Strict,HTML 4 Transitional,HTML 5和XHTML文檔類型。所有都成功呈現。

一些其他的事情要考慮...

許多現代瀏覽器試圖呈現標準網頁兼容模式。如果您嘗試使用XHTML,並且使用未加引號的值,那麼瀏覽器將恢復到怪癖模式,可能會影響您的其他符合標準的文檔的渲染。隨着瀏覽器越來越符合標準,未來的規格可能會放棄不引用的值。

此外,在某些Web框架中,應用程序可能在提供服務之前解析模板。同樣,如果這些解析器期待有效​​的XHTML,這種類型的事情可能會導致失敗。

只要你堅持HTML而不是XHTML,你應該沒有引號的罰款,但不能保證XHTML瀏覽器會發生什麼事。添加引號看起來像一個小的成本,並保持您的代碼大致符合未來的標準。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<title>No Quotes Test</title> 
</head> 
<body> 
<input type="text" value="with/quotes and spaces" ></input> 
<input type=text value=no/quotes and spaces ></input> 
<input type=text value=no/quotes_no_spaces ></input> 
</body> 
</html> 
9

這是valid HTML 5,但不是有效的XHTML。作爲最佳做法,即使您未使用XHTML,我也會始終包含引號。

+1

即使當DOCTYPE是XHMTL,當前和未來的瀏覽器都可以使用嗎?我知道它不理想,但我只需要知道它是否會起作用。 – 2009-06-08 09:17:15

3

它在spec所以你應該是安全的。

「在某些情況下,作者可以不加任何引號指定屬性的值,屬性值只能包含字母(az和AZ),數字(0-9),連字符(ASCII小數點45),句點(ASCII小數點46),下劃線(ASCII小數點95)和冒號(ASCII小數點58),我們推薦使用引號,即使可以消除它們。

0

它在HTML中有效,但不被認爲是最佳實踐。這不是XHTML有效,所以如果這是你的目標,我會建議用引號括起來。現在這只是我的習慣。

相關問題