当使用link-Drupal / Jquery UI时,Ckeditor库从目标属性中删除括号

时间:2018-01-05 15:35:41

标签: jquery jquery-ui drupal-7 ckeditor

你好我有一个drupal 7项目,它使用ckeditor库(不是模块)和一个名为ckeditor_link的插件。

我正在使用此插件,以便用户可以使用typeahead功能链接wysiwyg中的内部路径。

我希望的一个功能是,一旦用户在对话框的链接选项卡中选择内部路径,他们就可以转到目标选项卡并将其值设置为[dialog] - 这就是短代码的方式jquery ui对话框适用于演示<a href="link-to-content" target="[dialog]">Dialog Link</a>但是在 ckeditor库中,缩小的link.js文件中有一行用于删除非字母字符commit:function(a){a.target||(a.target={});a.target.name=this.getValue().replace(/\W/gi,"")}

结果是,当用户链接并打算将该链接作为对话框时,结果实际上是<a href="link-to-internal-path" target="dialog">Dialog Broken</a>,它不会挂钩到短代码/开箱即用的dupery ui功能。

如何覆盖此ckeditor规则?最好直接在我使用的ckeditor_link插件中。

1 个答案:

答案 0 :(得分:1)

我不确定你是如何插入内部链接的目标(&#34;链接到文本中的锚点&#34;据我所知)但是看一下编辑器代码,我可以告诉你,正则表达式有问题的模式已在CKEditor 4.5.5中从/\W/gi更改为/([^\x00-\x7F]|\s)/gi,并且不再删除[]。请参阅下面的代码段:

&#13;
&#13;
console.log("[dialog]".replace(/([^\x00-\x7F]|\s)/gi,""));
console.log("[dialog]".replace(/\W/gi,""));
&#13;
&#13;
&#13;

如果此模式确实是您的问题的根源,那么我强烈建议将编辑器升级到4.8版。