你好我有一个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插件中。
答案 0 :(得分:1)
我不确定你是如何插入内部链接的目标(&#34;链接到文本中的锚点&#34;据我所知)但是看一下编辑器代码,我可以告诉你,正则表达式有问题的模式已在CKEditor 4.5.5中从/\W/gi
更改为/([^\x00-\x7F]|\s)/gi
,并且不再删除[]
。请参阅下面的代码段:
console.log("[dialog]".replace(/([^\x00-\x7F]|\s)/gi,""));
console.log("[dialog]".replace(/\W/gi,""));
&#13;
如果此模式确实是您的问题的根源,那么我强烈建议将编辑器升级到4.8版。