当前位置: 代码迷 >> JavaScript >> 脚本类型模板包含脚本标签
  详细解决方案

脚本类型模板包含脚本标签

热度:9   发布时间:2023-06-05 14:18:07.0

脚本类型文本/模板包括脚本标签,忽略关闭的脚本标签。 以下是我的示例代码Html

<div id="container">
</div>

<script id="template" type="text/template">
    <script>
        (function () {
            alert('@Replacement')
        }());
    </script>
</script>

JS

var template = $("#template").html();
template = template.replace("Replacement", "Hi");
$('#container').text(template);

我希望在运行javascript之后页面上显示以下内容

<script>
    (function () {
        alert('@Replacement')
    }());
</script>

但由于以下原因而被忽略:

<script>
    (function () {
        alert('@Replacement')
    }());

脚本标签的内容被视为纯文本。

因此,内部的<script>开始标记被视为文本,而第一个 </script>结束标记被视为script元素的结尾。

然后,第二个</script>结束标记将被丢弃,因为没有匹配的打开脚本元素。


使用<script>元素作为放置模板的地方是肮脏的。 您刚刚发现了一个断裂点。

考虑改用 。 注意浏览器支持。

  相关解决方案