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解析器是一種“狀態機”的處理方式;html解析原理
回答3:谷歌可以輸出
相關文章:
1. android - 安卓做前端,PHP做后臺服務器 有什么需要注意的?2. mysql - ubuntu開啟3306端口失敗,有什么辦法可以解決?3. javascript - 從mysql獲取json數據,前端怎么處理轉換解析json類型4. mysql - C#連接數據庫時一直這一句出問題int i = cmd.ExecuteNonQuery();5. mysql replace 死鎖6. extra沒有加載出來7. 求救一下,用新版的phpstudy,數據庫過段時間會消失是什么情況?8. thinkPHP5中獲取數據庫數據后默認選中下拉框的值,傳遞到后臺消失不見。有圖有代碼,希望有人幫忙9. javascript - 微信網頁開發從菜單進入頁面后,按返回鍵沒有關閉瀏覽器而是刷新當前頁面,求解決?10. django - Python error: [Errno 99] Cannot assign requested address
