我们的中间层需要做一些事情来防止在javascript字符串中逐字出现.例如,在所有浏览器中,HTML解析器在其第一次传递中将忽略javascript上下文,请参阅第一个关闭脚本,然后查看垃圾,然后查看第二个关闭脚本.请参阅:using-script-in-a-javascript-literal
start " ); finish
我解决这个问题的第一个想法是将我们为javascript字符串转义的字符扩展为包含">"和"<" - 这似乎适用于我测试的浏览器,但看起来并不符合标准:escapesequence.shtml
编辑:此规则专门用于呈现为javascript字符串文字的内容.
你需要以某种方式删除文字:
"<" + "/" "<\/" "<\x2F" "\x3C/" "<\u002F" "\u003C/"
请参阅CDATA类型的说明:
虽然
STYLE
和SCRIPT
元素使用CDATA作为其数据模型,但对于这些元素,CDATA必须由用户代理以不同方式处理.必须将标记和实体视为原始文本并按原样传递给应用程序.第一次出现的字符序列""(结束标记打开定界符)被视为终止元素内容的结尾.在有效文档中,这将是元素的结束标记.