如何在JavaScript变量中包含转义的<script> </script>标记?

时间:2015-02-21 07:19:27

标签: javascript

我在Javascript中有一个字符串,我必须转义几个字符:

<script>
function GenerateCode() {
     alert(ctry);
     var script = "<script async src=\"//somesite.com/feed/livetrend.js\"></script>";
}
</script>

我尝试了以下操作来逃避角色:

var script = "<script async src=\"//somesite.com/feed/livetrend.js\"></script>";

但是,尽管已经考虑在\

前面加上转义字符",但这种方法无效。

错误 - unterminated string constant

1 个答案:

答案 0 :(得分:21)

问题是,当浏览器在打开的</script>标记内遇到结束<script>标记时,无论使用它的上下文如何,它都会在那里终止脚本标记。有几种方法可以避免这种情况。

选项1 - 在结束/标记中转义script

var script = '<script async src="//somesite.com/feed/livetrend.js"><\/script>';

选项2 - 在注释掉的HTML注释中包装JavaScript:

<script>
/*<!--*/
var script = '<script async src="//somesite.com/feed/livetrend.js"></script>';
/*-->*/
</script>

选项3 - 将JavaScript放入外部文件:

当然,将JavaScript移动到外部文件中会完全避免这个问题,尽管它可能不是首选。

相关问题