首頁  >  問答  >  主體

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

ringa_leeringa_lee2684 天前904

全部回覆(3)我來回復

  • PHP中文网

    PHP中文网2017-06-14 10:54:30

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

    回覆
    0
  • 漂亮男人

    漂亮男人2017-06-14 10:54:30

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

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-14 10:54:30

    谷歌可以輸出

    回覆
    0
  • 取消回覆