Aem 如何格式化字符串,以便在呈现为HTML的内联脚本中使用?

Aem 如何格式化字符串,以便在呈现为HTML的内联脚本中使用?,aem,sightly,htl,Aem,Sightly,Htl,我有以下属性字符串 任何M'medium或L“AR”GE比萨饼均可享受五折优惠 我在HTML onclick标记中使用它,如下所示 onclick=“trackpromotcta(encodeURI(${properties.ctatowextright@context='text'}”);” 但是,这会输出无效的html。我尝试了scriptString的@context,但只对内部JavaScript进行了转义,而不是对内部HTML标记进行转义。我也尝试了所有其他选项,但没有一个能真正转义用

我有以下属性字符串

任何M'medium或L“AR”GE比萨饼均可享受五折优惠

我在HTML onclick标记中使用它,如下所示

onclick=“trackpromotcta(encodeURI(${properties.ctatowextright@context='text'}”);”

但是,这会输出无效的html。我尝试了scriptString的@context,但只对内部JavaScript进行了转义,而不是对内部HTML标记进行转义。我也尝试了所有其他选项,但没有一个能真正转义用于呈现HTML的特殊字符

我曾经看到有人使用@format来搜索字符串中的这些字符,并将它们转义为HTML,但我不知道如何使用@format来实现这一点

预期输出应为

onclick=“trackpromota(encodeURI('任何M';EDIUM或L";AR";GE PIZZA!都可以打五折);”

@context value“text”、“html”或“attribute”将在生成的html中返回编码值。同样根据文档,
text
对所有HTML特殊字符进行编码

如果您使用“查看页面源代码”而不是“检查开发人员工具的元素”查看html代码。你会看到预期的结果

onclick=“trackpromota(encodeURI('M';EDIUM或L";AR";GE PIZZA!可享受五折优惠”)”

参考:

查看HTL规范中的显示上下文:

您需要的是
scriptString
,因为字符串属性最终将用作javascript字符串文本

${properties.jcr:title@context='scriptString'}

此外,还需要用单引号括起HTL表达式,例如:

var str = '${'this is a js string literla' @ context='scriptString'}'
特定示例的HTL代码为:

onclick="trackPromoCta(encodeURI('${properties.ctaTwoTextRight @ context='scriptString'}'));"

对不起,事实并非如此。这之前使用了文本,发票事件在控制台中注册了一个错误,因为脚本的格式与代码中的报价不符。此外,此代码通过ContextHub目标添加到页面中。解决问题的最佳方法是使用WCMUSEPojo类,并在呈现该类之前转义该类中的属性值在尝试不同的上下文时,是否使用HTLCan添加有关所看到内容的详细信息?似乎“attribute”上下文应该可以工作,因为这是在html属性中进行的,但是您表示您尝试了所有其他选项,但没有一个有效。在JSP中,这是