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>
無法輸出,報(bào)錯(cuò):Uncaught SyntaxError: Invalid or unexpected token。
這屬于是瀏覽器的BUG嗎?
問題解答
回答1:結(jié)合瀏覽器看起解析,估計(jì)能明白,因?yàn)槟阋猚onsole的是一個(gè)script的結(jié)束標(biāo)簽,瀏覽器在解析html標(biāo)簽的時(shí)候,直接就把它當(dāng)做結(jié)束標(biāo)簽用了,這時(shí)候你會(huì)看到頁面上只顯示了');,余下的本來是真正的結(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. python文檔怎么查看?2. python - pycharm 自動(dòng)刪除行尾空格3. 安全性測(cè)試 - nodejs中如何防m(xù)ySQL注入4. python - pandas按照列A和列B分組,將列C求平均數(shù),怎樣才能生成一個(gè)列A,B,C的dataframe5. python - Pycharm的Debug用不了6. html - eclipse 標(biāo)簽錯(cuò)誤7. python 利用subprocess庫(kù)調(diào)用mplayer時(shí)發(fā)生錯(cuò)誤8. 請(qǐng)問PHPstudy中的數(shù)據(jù)庫(kù)如何創(chuàng)建索引9. datetime - Python如何獲取當(dāng)前時(shí)間10. javascript - 有適合開發(fā)手機(jī)端Html5網(wǎng)頁小游戲的前端框架嗎?
