CKEDITOR中ALT+0151自动转为n-dash:查询插件及禁用方法
CKEditor 字符自动转换问题解决方案
嘿,针对你遇到的CKEditor里Alt+0151自动转n-dash,以及想要禁用Alt+数字转实体的需求,我整理了对应的插件信息和处理方法:
负责转换的插件名称
在CKEditor 4中,管控这类自动转换(包括Alt+数字快捷键转实体、破折号智能替换)的核心插件是AutoCorrect。部分版本里SmartPunctuation插件也会参与标点的智能替换,但Alt+数字转实体和Alt+0151转en dash的核心逻辑主要由AutoCorrect负责。
如果是CKEditor 5的话,类似功能由Autoformat插件(处理标点替换)和SpecialCharacters插件(处理Alt数字快捷键转特殊字符)共同实现。
禁用方法
1. CKEditor 4 环境下
完全禁用所有自动校正功能
如果你不需要任何自动替换、校正的功能,可以直接在初始化时移除AutoCorrect插件:
CKEDITOR.replace( 'editor', { removePlugins: 'autocorrect' } );
仅禁用特定规则(保留其他功能)
要是你只想禁用Alt+数字转实体,同时保留其他自动校正功能,可以通过配置AutoCorrect的禁用项实现:
CKEDITOR.replace( 'editor', { autocorrect: { // 禁用Alt+数字转实体的规则 disable: [ 'altNumericEntities' ] } } );
如果你还想阻止Alt+0151转en dash的替换,可以把对应的规则也加进去:
CKEDITOR.replace( 'editor', { autocorrect: { disable: [ 'altNumericEntities', 'emDashToEnDash' ] } } );
2. CKEditor 5 环境下
在CKEditor 5里,配置方式有所不同:
ClassicEditor .create( document.querySelector( '#editor' ), { // 禁用自动格式替换(包括破折号转换) autoformat: false, // 禁用特殊字符的Alt数字快捷键 specialCharacters: { disableAltShortcuts: true } } ) .catch( error => { console.error( error ); } );
内容的提问来源于stack exchange,提问作者Mari Selvan
相关产品推荐
相关产品推荐

