2014-04-30 26 views
1

我有一個簡單的JavaScript (jsFiddle)爲什麼js不能理解字符串'</script>'?

alert('</script>'); 

瀏覽器無法理解它。
這是控制檯輸出:

Uncaught SyntaxError: Unexpected token ILLEGAL 

但這個腳本工作(jsFiddle)

alert('</scriptt>');//shows alert text '</scriptt>' 

它是某種瀏覽器錯誤或正常ECMAScript的行爲?

(瀏覽器是由鉻)

回答

8

因爲它被認爲是:

<script> 
alert(' 
</script> 
'); 

這是一個SyntaxError

您可以使用

alert('<\/script>\n'); 
5

的HTML解析器不理解JavaScript UND因此尋找一些東西,關閉它是</script>標籤。如果您在JavaScript中需要'</script>'作爲字符串,則只需使用'</s'+'cript>'即可。

JavaScript本身並沒有這樣的問題,在nodejs中使用var x = '</script>';是沒有問題的。 HTML解析器是。

1

這是JavaScript嵌入在HTML腳本標記,對不對?

然後HTML解析器終止您的腳本在中間。

將Javascript放入它自己的文件或打破字符串文字。也許CDATA部分也適用。

相關問題