我在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
。
答案 0 :(得分:21)
问题是,当浏览器在打开的</script>
标记内遇到结束<script>
标记时,无论使用它的上下文如何,它都会在那里终止脚本标记。有几种方法可以避免这种情况。
/
标记中转义script
:var script = '<script async src="//somesite.com/feed/livetrend.js"><\/script>';
<script>
/*<!--*/
var script = '<script async src="//somesite.com/feed/livetrend.js"></script>';
/*-->*/
</script>
当然,将JavaScript移动到外部文件中会完全避免这个问题,尽管它可能不是首选。