javascript - 在<script>標籤中輸出</script>的疑問
ringa_lee
ringa_lee 2017-06-14 10:52:30
0
3
899

問題描述:

<!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嗎?

ringa_lee
ringa_lee

ringa_lee

全部回覆(3)
Ty80

結合瀏覽器看起解析,估計能明白,因為你要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>
漂亮男人

瀏覽器核心的HTML解析器是一種「狀態機」的處理方式;
html解析原理

伊谢尔伦

谷歌可以輸出

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!