我遇到了一个问题,即在 JavaScript 中的带引号的字符串中有一个结束脚本标记,并且它正在终止脚本。我认为这不是预期的行为。一个例子可以在这里看到:http : //jsbin.com/oqepe/edit
我感兴趣的测试用例浏览器:Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.4) Gecko/20091028 Ubuntu/9.10 (karmic) Firefox/3.5.4。
我遇到了一个问题,即在 JavaScript 中的带引号的字符串中有一个结束脚本标记,并且它正在终止脚本。我认为这不是预期的行为。一个例子可以在这里看到:http : //jsbin.com/oqepe/edit
我感兴趣的测试用例浏览器:Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.4) Gecko/20091028 Ubuntu/9.10 (karmic) Firefox/3.5.4。
怎么了?
浏览器 HTML 解析器将看到</script>
字符串内的 ,并将其解释为脚本元素的结尾。
看看这个例子的语法着色:
<script>
var test = 'foo... </script> bar.....';
</script>
请注意,单词bar被视为脚本元素之外的文本内容......
一种常用的技术是使用连接运算符:
var test = '...... </scr'+'ipt>......';
您需要对其进行转义,否则它将成为 HTML 的一部分。
var test = 'what the hell... \<\/script\> \<h1\>why?!?!?!\<\/h1\>';