回答
現代瀏覽器的解析器(即那些使用HTML5解析算法)像這樣工作。如果他們希望接下來的文字或新的標籤,並且他們看到<!
,那麼他們會檢查接下來的幾個字符,看他們是否是--
或DOCTYPE
或者如果他們正在處理嵌入式SVG或MathML [CDATA[
。 (參見http://dev.w3.org/html5/spec/tokenization.html#markup-declaration-open-state)
如果,如在<!- foo
的情況下,沒有這些匹配的,則解析器進入在其中之後,直到下一個>
的所有字符,被讀出和並轉化成一個註釋的bogus comment state被投入進入DOM。
因此,您看到的行爲與<!-
的工作方式類似於評論開始。請注意,這種行爲對於破壞的標記是「修復」行爲,明智的是不依賴它。
你可以看到這樣的標記怎麼會在這裏形成了一個DOM:Live DOM Viewer
另外請注意,這是什麼@Amber說不同。在任何有意義的意義上,它都不被視爲標籤,它當然不會被忽略。
它實際上並不工作 - 它只是將其解釋爲實際標記,然後將該標記標記爲無效。
<!- foo bar -->
被視爲一個標籤,<!-foo bar-->
這顯然不是一個標準的HTML標記,並且因此被忽略。
試試這個,你會看到它不是真正的工作作爲註釋:
<!- >foo bar-->
這導致了另一個問題: 如果編譯器/解釋器無法讀取註釋, 我們如何測試它沒有被讀取(當然,如我的例子)? – 2012-03-25 07:34:12
@pop使用[html驗證器](http://validator.w3.org/)。 – nobody 2012-03-25 07:42:05
- 1. SVN「評論瀏覽器」
- 2. 如何評論封閉標籤? - 自動換行/評論
- 3. 爲什麼瀏覽器自動unescape html標籤屬性值?
- 4. PhpStorm埃米特HTML如何自動評論關閉標籤
- 5. 瀏覽器可以自動更正「損壞的網址」嗎?
- 6. 使用sed刪除html評論標籤
- 7. 評論php標籤
- 8. 爲什麼瀏覽器正在評論我的PHP代碼
- 9. HTML評論標記
- 10. 瀏覽器標籤中的圖標
- 11. 評論插件在Safari瀏覽器上無法正常工作
- 12. 來自數據庫的HTML標籤在瀏覽器中未被解釋爲HTML
- 13. HTML - 瀏覽器會自動填充隱藏的字段嗎?
- 14. 更改HTML時自動更新瀏覽器
- 15. 在瀏覽器標題欄中隱藏HTML標籤
- 16. 瀏覽器標籤存儲?
- 17. JavaScript和瀏覽器標籤
- 18. 與瀏覽器標籤
- 19. 評論HTML文檔中的樣式表以支持舊版瀏覽器
- 20. 在Jira中用標籤標記評論
- 21. 從C#中的字符串中刪除HTML標籤和評論?
- 22. HTML元素得到自動評論
- 23. VIM評論標籤錯誤?
- 24. 評論框標籤drupal
- 25. Deface和評論標籤?
- 26. 爲什麼HTML評論縮進在瀏覽器中顯示不同?
- 27. 表標籤內部的HTML標題標籤的瀏覽器問題
- 28. 在Dreamweaver的html評論標籤中查找和替換
- 29. javascript - 所有瀏覽器自動關閉標籤
- 30. Android瀏覽器:是否自動打開NFC標籤?
「作爲標籤處理」,意思是它被分析到下一個'>'(這是標籤的結束字符),而不是下一個' - >'(這是註釋的結尾字符) 。 「被忽略」是指它被用作評論,而不是影響顯示頁面的文本。 – Amber 2012-03-25 17:32:54