以下是导致Firefox和Chrome出错的整个文档:
<!DOCTYPE html>
<html>
<head>
<script>
var strs = [], scripts = ['harbl.js'], s = 0;
strs.push('<script src="' + scripts[s] + '"></script>');
</script>
</head>
<body>
<p>buh...</p>
</body>
</html>
http://jsfiddle.net/cryptoquick/J4zZT/
我得到的错误是:
Uncaught SyntaxError: Unexpected token ILLEGAL
这让我很困惑。
答案 0 :(得分:9)
</script>
文字由浏览器解析,因为它在遍历代码时不知道上下文。你必须这样逃避它:<\/script>
。这是一个众所周知的问题。
答案 1 :(得分:3)
将其更改为:
strs.push('<script src="' + scripts[s] + '"></s' + 'cript>');
答案 2 :(得分:-1)
Front Slash '/'
被视为特殊字符。这是导致错误的原因。
strs.push('<script src="' + scripts[s] + '"><\/script>');
请阅读此帖以获取更多信息JavaScript and forward slashes in strings。