JavaScriptstring中的脚本标记

我遇到了一个问题,在JavaScript中带引号的string中有一个结束脚本标记,并且正在查杀脚本。 我认为这不是预期的行为。 这个例子可以在这里看到: http : //jsbin.com/oqepe/edit

我对testing用例的浏览器感兴趣:Mozilla / 5.0(X11; U; Linux i686; en-US; rv:1.9.1.4)Gecko / 20091028 Ubuntu / 9.10(karmic)Firefox / 3.5.4。

怎么了?

浏览器HTMLparsing器将在string中看到</script> ,并将它解释为脚本元素的结尾。

看看这个例子的语法着色:

 <script> var test = 'foo... </script> bar.....'; </script> 

请注意,单词被视为脚本元素之外的文本内容…

一个常用的技巧是使用连接运算符:

 var test = '...... </scr'+'ipt>......'; 

您需要转义它,否则它将成为HTML的一部分。

 var test = 'what the hell... \<\/script\> \<h1\>why?!?!?!\<\/h1\>';