javascript - 在<script>標(biāo)簽中輸出</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:結(jié)合瀏覽器看起解析,估計能明白,因為你要console的是一個script的結(jié)束標(biāo)簽,瀏覽器在解析html標(biāo)簽的時候,直接就把它當(dāng)做結(jié)束標(biāo)簽用了,這時候你會看到頁面上只顯示了');,余下的本來是真正的結(jié)束標(biāo)簽,被當(dāng)做多余處理掉了。

類似情況還有
<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>Document</title></head><body> <script> //</script> </script></body></html>
從解析標(biāo)簽的角度來看,瀏覽器:“這鍋我不背”。
如果要正常顯示,可以 加轉(zhuǎn)義
<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>Document</title></head><body> <script> console.log('</script>'); </script></body></html>回答2:
瀏覽器內(nèi)核的HTML解析器是一種“狀態(tài)機(jī)”的處理方式;html解析原理
回答3:谷歌可以輸出
相關(guān)文章:
1. 關(guān)于docker下的nginx壓力測試2. mac里的docker如何命令行開啟呢?3. docker - 各位電腦上有多少個容器啊?容器一多,自己都搞混了,咋辦呢?4. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””5. docker容器呢SSH為什么連不通呢?6. nignx - docker內(nèi)nginx 80端口被占用7. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題8. javascript - 最近用echarts做統(tǒng)計圖時遇到兩個問題!!9. docker gitlab 如何git clone?10. angular.js使用$resource服務(wù)把數(shù)據(jù)存入mongodb的問題。

網(wǎng)公網(wǎng)安備