javascript - 在<script>標簽中輸出</script>的疑問
問題描述
問題描述:
<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>Document</title></head><body> <script> console.log('</script>'); </script></body></html>
無法輸出,報錯:Uncaught SyntaxError: Invalid or unexpected token。
這屬于是瀏覽器的BUG嗎?
問題解答
回答1:結合瀏覽器看起解析,估計能明白,因為你要console的是一個script的結束標簽,瀏覽器在解析html標簽的時候,直接就把它當做結束標簽用了,這時候你會看到頁面上只顯示了');,余下的本來是真正的結束標簽,被當做多余處理掉了。
類似情況還有
<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>Document</title></head><body> <script> //</script> </script></body></html>
從解析標簽的角度來看,瀏覽器:“這鍋我不背”。
如果要正常顯示,可以 加轉義
<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>Document</title></head><body> <script> console.log('</script>'); </script></body></html>回答2:
瀏覽器內核的HTML解析器是一種“狀態(tài)機”的處理方式;html解析原理
回答3:谷歌可以輸出
相關文章:
1. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題2. css3 - 圖片等比例縮放3. html - css3中多列高度 統(tǒng)一4. javascript - 使用angular 的ui-sref 中出現(xiàn)了中文參數(shù),點擊跳轉后瀏覽器的地址欄里出現(xiàn)轉義后的%AE....%a%45. css3 - 如何將網(wǎng)頁CSS背景圖高斯模糊且全屏顯示6. javascript - 一個賦值運算的問題7. css3 - animation屬性,safari瀏覽器不支持相關效果8. javascript - 求賜教:網(wǎng)易郵箱Web端模擬登錄看信的加密參數(shù)_ntes_nnid、_ntes_nuid9. css - jq有無現(xiàn)成函數(shù)改變rotateX/Y的deg10. javascript - QWebEngineView 如何爬 angular 的動態(tài)數(shù)據(jù)?
