【问题标题】:Javascript - error when a script tag in a string [duplicate]Javascript - 字符串中的脚本标记时出错[重复]
【发布时间】:2014-04-13 11:07:17
【问题描述】:

我有一个包含以下代码的页面:

<script>
window.str = '<script></script>';
</script>

这会导致错误:

Uncaught SyntaxError: Unexpected token ILLEGAL

发生了什么事?在控制台中输入相同的代码运行没有问题。 Here is a jsbin demonstrating the issue

【问题讨论】:

  • 字符串中的&lt;/script&gt; 标记关闭了第一个&lt;script&gt; 标记,留下无效的JavaScript。 HTML 不知道 JavaScript,它只看到结束标记。它可以在控制台中运行,因为代码不在 HTML 上下文中。
  • 哦,很高兴找到@FelixKling 就是这样。哇,我想我几个月甚至几年都没有学到关于 javascript 的新知识。
  • :) 我会说,这更像是一个 HTML 问题而不是 JS 问题,但学习新东西真是太好了 :)
  • 是的,我会保留它并投票结束 - 我问的方式与欺骗 OP 不同。

标签: javascript string


【解决方案1】:

当我使用 \ 转义 / 时,错误消失了。

http://jsbin.com/xugabolu/1/edit

【讨论】:

    【解决方案2】:

    解决这个问题的方法如下:

    <script>
    window.str = '<scr' + 'ipt></scri' + 'pt>';
    </script>
    

    这样,你就可以得到你想要的字符串,而不会混淆解析器。

    或者,如果这是最终目标,则将其作为 DOM 元素插入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-12
      • 1970-01-01
      • 1970-01-01
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      • 2013-05-05
      • 2020-07-10
      相关资源
      最近更新 更多