我正在使用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
,但未插入任何链接。
EDIT_的 _
问题似乎不是insertText
形成的方式。无论格式是什么,如果data-rel属性在单引号之间显示其值,则会添加双引号。
因此,解决方案可能是找到insertHtml
命令的变通方法,或者对插入的代码进行后处理。
EDIT_的 _ _
根据Imperavi支持,JSON不应与data- *一起使用。我终于通过删除JSON字符串中的任何引号找到了一种解决方法,并在解析data-rel值之前添加它们。但是,我想这不是最有效和最好的解决方案......
答案 0 :(得分:2)
使用此:
this.execCommand('insertHtml', insertText.replace(/'/g, "\\'"));