JavaScript字符串中的脚本标记

时间:2009-11-02 06:41:08

标签: javascript

我遇到一个问题,在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。

2 个答案:

答案 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\>';