用不同的值替换标签-AEM
我试图操纵从RTE读取的内容。RTE为Shift+Enter放置一个用不同的值替换标签-AEM,aem,sightly,Aem,Sightly,我试图操纵从RTE读取的内容。RTE为Shift+Enter放置一个标记。为了符合要求,需要将替换为
标记。为了符合要求,需要将
替换为
在JavaScript使用API中尝试了以下操作,但以下操作不起作用,它保持标记不变
text.replaceAll(“
”,“
”)代码>
如果替换为其他标记,则会正确替换该值
text.replaceAll(
,“某物”)代码>
在Java使用API中也尝试了同样的方法,但不起作用。任何指针都会有所帮助。如果您查看CRXDE中的/libs/cq/ui/rte/core/DomProcessor.js
和/libs/cq/ui/rte/core/HtmlProcessor.js
,您会发现这里发生了许多特定于标记的处理
现在有多种方法可以进行:
通过叠加两个JS中的一个,找出添加自定义处理的正确位置(我不确定JS叠加是否有效,因为它们是静态资源)
在使用Java Use API的渲染逻辑中,添加基于字符串标记化的自定义处理步骤,以处理
节点并向其添加属性
编写一个自定义重写器来处理
标记并向其添加所需的属性。Make由配置驱动,以允许将来的更改
使用JQUERY处理
元素并向其中添加自定义属性
我没有探讨的是可以为RTE定义或定制的HTML规则,如果您有时间,您可以确定是否可以定义规则以实现您想要的,在我看来,这将是最好的解决方案 如果您查看CRXDE中的/libs/cq/ui/rte/core/DomProcessor.js
和/libs/cq/ui/rte/core/HtmlProcessor.js
,您会发现这里发生了大量特定于标记的处理
现在有多种方法可以进行:
通过叠加两个JS中的一个,找出添加自定义处理的正确位置(我不确定JS叠加是否有效,因为它们是静态资源)
在使用Java Use API的渲染逻辑中,添加基于字符串标记化的自定义处理步骤,以处理
节点并向其添加属性
编写一个自定义重写器来处理
标记并向其添加所需的属性。Make由配置驱动,以允许将来的更改
使用JQUERY处理
元素并向其中添加自定义属性
我没有探讨的是可以为RTE定义或定制的HTML规则,如果您有时间,您可以确定是否可以定义规则以实现您想要的,在我看来,这将是最好的解决方案 您需要覆盖的rte插件位于/etc/clientlibs/granite/coralui2/optional/rte/js/core/plugins/KeyPlugin.js
在第254行周围创建
元素时,使用
newBr.setAttribute('aria-hidden',true)代码>
调试提示:您可以在此文件上在Chrome中设置调试点,并在运行时更改代码(搜索KeyPlugin)/etc/clientlibs/granite/coralui2/optional/rte.js
完成此操作后,单击对话框“确定”,您可以在网络控制台中看到发布到服务器的
在此之后,您可能会遇到Sling的XSS保护,它会从生成的HTML中删除此属性。找这个日志
org.apache.sling.xss.impl.htmlothtmlcontentContext反垃圾邮件警告:br标记包含我们无法处理的属性。咏叹调-;隐藏属性已被过滤掉,但标记仍在原位。该属性的值为“true”。
我知道两种处理方法
使用“不安全”的上下文
重写/libs/sling/xss/config.xml
并修改
标记的验证
您需要覆盖的rte插件是KeyPlugin,位于/etc/clientlibs/granite/coralui2/optional/rte/js/core/plugins/KeyPlugin.js
在第254行周围创建
元素时,使用
newBr.setAttribute('aria-hidden',true)代码>
调试提示:您可以在此文件上在Chrome中设置调试点,并在运行时更改代码(搜索KeyPlugin)/etc/clientlibs/granite/coralui2/optional/rte.js
完成此操作后,单击对话框“确定”,您可以在网络控制台中看到发布到服务器的
在此之后,您可能会遇到Sling的XSS保护,它会从生成的HTML中删除此属性。找这个日志
org.apache.sling.xss.impl.htmlothtmlcontentContext反垃圾邮件警告:br标记包含我们无法处理的属性。咏叹调-;隐藏属性已被过滤掉,但标记仍在原位。该属性的值为“true”。
我知道两种处理方法
使用“不安全”的上下文
重写/libs/sling/xss/config.xml
并修改
标记的验证
检查替换为
但包含已知正确的数据属性是否有效-因为我觉得这就像是标记参数验证。e、 g试试
顺便说一句,
应该是
(关闭标记)另外,您最终是如何输出html的?因为它可能只是清除了你的属性。@ub1k这对已知的属性(例如class
)很有效。WAI是一个W3C标准,我们希望它能起作用。请检查如果替换为
,但包含一个已知的正确数据属性是否能起作用-因为我觉得这就像是标记参数验证。e、 试试
顺便说一句,
应该是