由于非常具体的要求,我需要阻止CKEditor使用URL周围的引号重写链接。例如,如果我输入:
<a href=TEST123>TEST123</a>
CKEditor将其重写为:
<a href="TEST123">TEST123</a>
我目前在我的发行版中有以下插件,虽然添加或删除不同的插件以满足此要求不会是一个问题:
basicstyles, button, clipboard, dialog, dialogui, enterkey,
entities, fakeobjects, floatingspace, indent, indentlist,
link, list, resize, sourcearea, toolbar, undo, wysiwygarea
在我讲这个想法有多糟糕之前(你在这里向合唱团讲道),要知道这是对Keyora网络平台的一个非常具体的实现的要求。我无法绕过这个要求,因为它已被编译成别人的代码。我只是需要以某种方式使它工作。有没有办法用CKEditor做到这一点?
谢谢!
答案 0 :(得分:2)
我想出了如何做到这一点。诀窍是将basicWriter函数(位于/ckeditor/core/htmlparser/basicwriter.js中)复制到/config.js文件中并对其应用一个小的自定义,如下所示:
<强>原始强>
CKEDITOR.htmlParser.basicWriter = CKEDITOR.tools.createClass( {
...
this._.output.push( ' ', attName, '="', attValue, '"' );
...
} );
<强>定制强>
CKEDITOR.htmlParser.basicWriter = CKEDITOR.tools.createClass( {
...
if ( attName == 'href' ) {
this._.output.push( ' ', attName, '=', attValue, '' );
} else {
this._.output.push( ' ', attName, '="', attValue, '"' );
}
...
} );
这可以防止自动包围的网址引号。同样,这会破坏CKEditor几乎所有适用的应用程序,因此我强烈建议不要在几乎任何情况下执行此操作。
即使这是不好的做法,将它添加到config.js而不是自定义核心CKEditor代码本身至少可以让您轻松回滚自定义。