javascript - Thymeleaf 和内联脚本 SAXParseException

标签 javascript thymeleaf cdata

我有一个使用 thymeleaf 模板的页面,并且在使用内联脚本时在页面加载时出现以下错误:

org.xml.sax.SAXParseException; lineNumber: 270; columnNumber: 85; The content of elements must consist of well-formed character data or markup.

第 270 行的代码

<script type="text/javascript" >
    window.jQuery || document.write("<script src='assets/js/jquery-2.0.3.min.js'>"+"<"+"/script>");
</script>

我尝试用 < > 替换 document.write 中的“<”、“>”符号,异常不再发生,但脚本是不再加载

最佳答案

您需要像这样为脚本添加 CDATA 标签:

<script type="text/javascript">
    //<![CDATA[
     window.jQuery || document.write("<script src='assets/js/jquery-2.0.3.min.js'>"+"<"+"/script>");
    //]]>
</script>

标签告诉 thymeleaf 的 xml 解析器,它们之间的代码不应被解释为 XML 标记。

自 Thymeleaf 3.0 以来不再需要

关于javascript - Thymeleaf 和内联脚本 SAXParseException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22985898/

相关文章:

java - html + Java |从输入类型 ="time"接收 0

xml - CDATA 的正则表达式是什么

java - JAXB 拆解 cdata

javascript - 可调整大小的处理程序在叠加弹出 div 向下滚动后移动

spring-security - spring security thymeleaf LockedException 自定义消息

html - 复选框对齐未按预期工作

javascript - 在 javascript 变量中存储 HTML 或 XML 代码

javascript - Firefox 无法与位于 ws ://localhost:8080/的服务器建立连接

javascript - 如何从 Vue 组件调用 Rest API?

javascript - 如何获取 jQuery Mobile Listview 控件中文本框的值