You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript变量中存放两个<script>标签并避免解析报错

问题原因

浏览器解析HTML中的<script>标签时,优先级高于JavaScript语法解析:只要遇到</script>字符串,无论该字符串是否处于JavaScript的引号包裹范围内,都会被判定为当前<script>块的结束标记。
你直接将包含</script>的文本文件内容拼接进JS字符串的写法,会让浏览器提前截断脚本块,导致字符串未闭合、后续代码失效、第二个<script>标签被识别为普通HTML节点等错误。
另外你给出的代码还存在变量名不匹配的问题:声明的变量名为contents,赋值给innerHTML时用的是未定义的htmlCode,也会触发报错。

解决方法

最稳妥的方案是通过PHP的json_encode函数处理读取的文本内容,该函数会自动转义所有特殊字符(包括将/转义为\/,避免</script>被浏览器识别为闭标签),输出的结果本身就是合法的JS字符串格式,不需要额外手动加引号。
修正后的代码如下:

var contents = <?php echo json_encode(file_get_contents('abc/test.txt')); ?>; 
document.getElementById('replace_contents').innerHTML = contents;

如果不想使用json_encode,也可以手动替换特殊字符串:在PHP输出内容时,将</script>替换为<\/script>,同时转义字符串中的单引号,避免破坏JS字符串的语法结构,但该方案容易遗漏特殊字符,更推荐使用json_encode的方案。


内容的提问来源于stack exchange,提问作者chandana Gowda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 10:54:02