gpt4 book ai didi

javascript - freemarker、java和javascript之间的引用问题

转载 作者:行者123 更新时间:2023-11-30 19:07:44 25 4
gpt4 key购买 nike

我对单引号有疑问,从 java 发送一个词(例如:patte')到 html(freemarker),然后在“onClick”js 函数上使用该变量

我已经尝试在 java 中进行额外的转义,但变量 display 将包含 '\'(patte\'t)。 onClick 在这种情况下工作正常。如果我在 Java 中使用简单的转义,变量显示很好,但 onClick deos 不起作用(参数如:onClick('patte')),在这种情况下我得到了一个错误。

<tr id="contactList" onclick="Ws('${contact.id!''}','${contact.name!''}');">
some <td>
</tr>
contact.name contains a single quote in his value



ex:
Java send: pette't
html displays: pette't
onClick: error(onClick('patte't'))

Thanks everyone

最佳答案

在这种情况下需要两层转义:JavaScript 字符串转义,然后是 HTML 转义。

对于 JavaScript 字符串转义,使用 ?js_string .有了它,你会得到类似 onclick="Ws('someId', 'patte\'t')" 的东西.如果名称包含 ",那仍然会被破坏,因为这将关闭 HTML 属性值,尽管 ?js_string将转义为 \" (因为 \ 在 HTML 中没有特殊含义)。所以第二层是HTML转义,会替换"&quot;等等。好的做法是在生成 HTML 页面时打开 HTML 自动转义;如果它没有在应用程序级别打开,请将其打开。 (如果不能,则使用 <#ftl output_format='HTML'> 启动模板。)

关于javascript - freemarker、java和javascript之间的引用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58819493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com