未终止的字符串文字/无效或意外的标记

Eri*_*ric 4 javascript

我为什么要......

SyntaxError:未终止的字符串文字

...在Firefox和...

未捕获的SyntaxError:无效或意外的令牌

... 当我跑...时在Chrome中 ...

$(document).ready(function () {
  function addJSBeforeEndBody(code) {
       $('body').append('<script>' + code + '</script>');
  }
  addJSBeforeEndBody('$(document).ready(function() { console.log("I never end up here."); });');
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

Dav*_*ton 10

分解字符串"</script>"(在javascript代码中); 它将被解释为实际的结束脚本标记,而不是您想要的字符串文字.

$(document).ready(function () {
  function addJSBeforeEndBody(code) {
       $('body').append('<script>' + code + '</scr' + 'ipt>');
  }
  addJSBeforeEndBody('$(document).ready(function() { console.log("It works now."); });');
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

  • @Erik 我就是这个意思;在 HTML 文件中不能有文字 `"&lt;/script&gt;"`,除非它是一个实际的文字标签。使用 `"&lt;/scr" + "ipt&gt;"` 或 `"&lt;\/script&gt;"` 或任何不是 `"&lt;/script&gt;"` 的东西。 (2认同)