我有一個關於Rails 3如何與XHTML文檔類型一起工作的簡單問題。由於Rails 3使用UJS進行ajax調用(甚至包括正常調用,例如刪除調用),並通過使用HTML5數據屬性來實現,因此,由於XHTML不支持數據屬性,標記會自動失效嗎?Rails 3 UJS和XHTML
2
A
回答
6
data-*
屬性在XHTML5中有效,它是HTML5的一種編碼。它們在XHTML 1.0中無效,但這可能不是一個大問題。
很可能,如果您將內容提供給真實世界的瀏覽器,則它們將其解析爲HTML,而不是XHTML。如果您將內容作爲text/html
提供,瀏覽器會將其解析爲HTML。如果你把它當成application/xhtml+xml
,那麼IE6會把它作爲原始的XML來呈現,而不是HTML,而在其他瀏覽器中,如果你犯了一個小錯誤,他們會停止解析並顯示一個醜陋的錯誤信息,而不是繼續嘗試來解析其餘的內容。如果您將其作爲text/html
提供,那麼瀏覽器會將其解析爲text/html
,因此無論它是否爲有效的XHTML都沒關係。
即使它是無效的XHTML 1.0,它仍然是格式良好的,並且Web瀏覽器不驗證用戶代理,所以內容是否有效並不重要。整個data-*
屬性的要點是爲頁面上的腳本提供私有數據。由於data-*
屬性不會阻止文檔格式良好,所以瀏覽器仍然會解析文檔,並且腳本可以訪問數據,無論數據是否爲有效的XHTML。
結果是:這些屬性在HTML5和XHTML5中有效。它們在XHTML 1.0中無效,但這並不重要,因爲這些屬性可以在所有主流瀏覽器中使用,爲您的頁面上的腳本提供私有數據。
相關問題
- 1. Rails 3 AJAX問題 - UJS
- 2. 使用Rails 3,UJS/jQuery
- 3. 轉換form_remote_tag來的form_for爲Rails 3 UJS
- 4. Rails 3 UJS - 懸停,不點擊
- 5. Rails 3 UJS驅動程序事件
- 6. 的Rails 3 UJS:使用的link_to
- 7. $ .ajaxSend,$ .ajaxComplete時,Rails UJS和Chrome
- 8. Ruby on Rails UJS
- 9. IE中的引導程序3下拉和Rails UJS衝突
- 10. :同時使用Rails 3和被忽略的Rails的確認選項的jQuery UJS
- 11. jquery-rails和jquery-ujs之間的區別
- 12. rails ujs - javascript沒有執行
- 13. Rails的AJAX UJS問題
- 14. Rails 3 UJS Ajax模式/策略,哪個更好?
- 15. Rails 3 UJS讓我很難創建一個「返回」按鈕
- 16. Rails 3,在html區域標籤上使用UJS
- 17. Rails 3 UJS幹客戶端+服務器端表單驗證
- 18. 簡單的UJS與jQuery不工作在Rails 3
- 19. jMapping V2.0:未在Rails 3中繪製標記+ jQuery-UJS項目
- 20. 是jquery-ujs所有我需要使用jQuery與rails 3?
- 21. 顯示微調Rails 3 UJS獲取類型錯誤
- 22. 錯誤:Rails中找不到文件 'jQuery的UJS' 3
- 23. Rails 3 UJS - 控制器被link_to調用兩次:remote
- 24. 插件/寶石在Rails 2.3.x中獲得Rails 3風格的UJS?
- 25. Rails3,JQuery和RJS(UJS)
- 26. 使用與Rails3中和UJS
- 27. Rails UJS數據禁用 - 返回結果
- 28. Rails的遠程鏈接沒有jQuery和UJS和替代
- 29. 帶有URL參數問題的Rails UJS
- 30. Rails UJS在IE中渲染js.erb模板
好的答案。現在有太多人對嚴格的有效性一味強硬。 – 2010-09-12 03:16:16