我正在为一个小网站编写HTML和JS。当我在JS中写一些特殊的单词时,我遇到了一个问题。
以下是样本:
<script Language="javascript" >
var template = {
"role":'<role name="" />',
"script":'<script>xxx</script>'
};
...
</script>
我发现Chrome会解析它错误。它将忽略模板声明中文件</script>
之后的JS文本。
答案 0 :(得分:3)
浏览器将脚本中的</script>
视为脚本标记的末尾,而不是字符串。这意味着您基本上是在尝试执行此操作:
<script>
var template = {
"role":'<role name="" />',
"script":'<script>xxx
</script>
这是无效的JavaScript。
为避免这种情况,您需要拆分脚本标记:
"script":'<script>xxx</sc' + 'ript>'
以便浏览器看不到</script>
并正确等待您的预期结束脚本标记。
答案 1 :(得分:1)
应该是这样的:
<script type="text/javascript" >
var template = {
"role":'<role name="" />',
"script":"<sc"+"ript> type='text/javascript'>xxx"+"</sc"+"ript>"
};
......
......
</script>