我正在使用 redactor 8.2.2 构建一个小型自定义插件来自定义链接。
这是我想要实现的目标的示例:
var insertText = "<a href='#target' data-rel='{\"key\":\"value\"}'>text</a>";
/* later in the code... */
this.execCommand('insertHtml', insertText);
我最终在编辑器中得到了这段代码:
<a href="#target" data-rel="{"key":"value"}">text</a>
最终用双引号保存在数据库中,导致进一步的麻烦:
<a href="#target" data-rel="{"key";"value"}">text</a>
有没有办法强制使用单引号?
我也尝试使用insertHtmlAdvanced
,但没有插入链接。
编辑__
问题似乎不在于 insertText
的格式化方式。无论格式是什么,如果 data-rel 属性在单引号之间显示其值,则会添加双引号。
因此,解决方案可能是为 insertHtml
命令找到解决方法,或者对插入的代码进行后处理。
编辑___
根据 Imperavi 支持,JSON 不应与 data-* 一起使用。我最终找到了一个解决方法,删除 JSON 字符串中的任何引号,然后在解析 data-rel 值之前添加它们。然而,我想这不是最有效和最好的解决方案......
最佳答案
使用这个:
this.execCommand('insertHtml', insertText.replace(/'/g, "\\'"));
关于json - 如何使用 redactor.js 插入单引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18122923/