javascript - 在 thymeleaf 变量中转义撇号

标签 javascript html thymeleaf

我正在尝试使用 thymeleaf 转义作为字符串参数传递的变量值中的撇号。我的代码如下所示:

<button type="button" class="btn btn-default btn-sm" th:id="${'delete'+document['oid_pj']}"
                th:if="${document['utilisateur'] == session.utilisateur}"
                th:onclick="'deletePj(\''+${document['oid_pj']}+'\',\''+ ${document['url']} +'\');'">

当解释 html 页面时,它看起来像这样:

<button type="button" class="btn btn-default btn-sm" id="deleteAS8bo00000F1T" onclick="deletePj('AS8bo00000F1T','//20150007/GIWkE0000FHUI//Creation d'un service GtMonitor.doc');">

所以来自“d'un”的撇号在它的意思之前关闭了参数。

有谁知道我怎样才能逃脱它?

最佳答案

在将 ${document['url']}(包含单引号的值)传递给 javascript 函数之前,首先通过将 ' 替换为 来清理它\'。使用 th:with 创建一个局部变量,用于存储清理后的值。使用 #strings.replace 进行替换。为防止编译错误,替换时使用html实体'代替'

<input type="button" value="Click Me" 
            th:with='cleaned=${#strings.replace(document["url"], "&apos;", "\&apos;")}'
            th:onclick="'deletePj(\''+${document['oid_pj']}+'\',\''+ ${cleaned} +'\');'"/>

输出:

<input type="button" onclick="deletePj('AS8bo00000F1T','//20150007/GIWkE0000FHUI//Creation d\'un service GtMonitor.doc');" value="Reconciliation">

关于javascript - 在 thymeleaf 变量中转义撇号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34048184/

相关文章:

java - JSF(view) + Spring MVC 糟糕的选择?即使在 JSF 成为正式的 EE 规范之后,还有任何替代品吗?

java - 打印输出从 arraylist 接收到的下拉列表中的值

css - 使用 thymeleaf 设置 CSS 样式属性

javascript - 由于函数排序导致 JSLint "out of scope"错误?

javascript - 引用的值被视为整数

html - 如何在 Bootstrap 上像亚马逊一样进行搜索和表单类别合并

html - SVG 的 CSS 不起作用

javascript - 如何使用正确的引用 header 以编程方式导航到 url?

javascript - 当元素 ID 包含美元符号时,Javascript 中的 getElementByid

css - 长度不一的div