我正在尝试使用以下命令向 CKEditor 插入文本:
CKEDITOR.instances.Body.insertText('$${FIRSTNAME}');
当光标位于纯文本时,上述命令可以正常工作。当我尝试在具有属性的文本之间插入文本时,它会插入单个 $ 而不是 $${FIRSTNAME} 的 $$。我已将示例上传到 jsbin 以重现该问题
请提出解决此问题的替代方法。
我正在尝试使用以下命令向 CKEditor 插入文本:
CKEDITOR.instances.Body.insertText('$${FIRSTNAME}');
当光标位于纯文本时,上述命令可以正常工作。当我尝试在具有属性的文本之间插入文本时,它会插入单个 $ 而不是 $${FIRSTNAME} 的 $$。我已将示例上传到 jsbin 以重现该问题
请提出解决此问题的替代方法。
这是一个丑陋的错误:DI调试了代码并找到了原因:
https://github.com/ckeditor/ckeditor-dev/blob/master/core/editable.js#L1616
String#replace
方法视为$$
一个$
(https://developer.mozilla.org/en/docs/JavaScript/Reference/Global_Objects/String/replace),因此数据应该受到保护。
恐怕现在没有简单的解决方法,因为您无法事先转义数据。根据上下文,replace
将使用或不使用该方法。
所以最好的选择是使用其他模板模式 - 例如%%{foo}
- 它会正常工作。从编辑器获取数据时,您可以替换%%
为$$
.