我遇到一个问题,在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。
答案 0 :(得分:74)
会发生什么?
浏览器HTML解析器将在字符串中看到</script>
,它会将其解释为脚本元素的结尾。
查看此示例的语法着色:
<script>
var test = 'foo... </script> bar.....';
</script>
请注意, bar 这个词被视为脚本元素之外的文本内容......
一种常用的技术是使用连接运算符:
var test = '...... </scr'+'ipt>......';
答案 1 :(得分:14)
你需要逃避它,否则它将成为HTML的一部分。
var test = 'what the hell... \<\/script\> \<h1\>why?!?!?!\<\/h1\>';