我正在使用 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 值之前添加它们。但是,我想这不是最有效和最好的解决方案......