奇怪的事情发生......
我在项目中使用内联CKEditor
HTML:
<div class="artbody" contenteditable="true" id="artbody"></div>
JS:
CKEDITOR.disableAutoInline = true;
CKEDITOR.forcePasteAsPlainText = true;
var ckbody = CKEDITOR.inline('artbody', {
customConfig: 'artbodyConfig.js',
on: {
instanceReady: function(){
periodicBodyData();
},
},
});
var periodicBodyData = ( function(){
return function() {
if ( isbodynull !== true ) { // isbodynull - flag declared before
updatePublishButtonState(updateToDo()); // some funcs. Nothing interesting
}
setTimeout( periodicBodyData, 3000 ); // idle
};
})();
所以,当我想在空 #artbody(ctrl + v或shift + insert或上下文菜单)中插入内容时,我会发现错误
Uncaught TypeError: Cannot read property 'type' of null ckeditor.js:148
什么都没有插入。
BUT!当我第二次尝试插入时,它工作正常。文本插入,错误消失。
所以,如果我想插入一些东西,我必须按ctrl + v twise。而且很快就会出现错误...或者。我必须输入内容并插入非空字段。
这种情况只发生在Chrome中(我使用的是33.0.1750.146)。即使IE8也行!
P.S。我的artbodyConfig.js
CKEDITOR.editorConfig = function( config ) {
config.toolbarGroups = [
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
{ name: 'paragraph', groups: [ 'list' ] },
{ name: 'styles' },
{ name: 'links' },
{ name: 'insert' },
{ name: 'tools' },
];
config.removeButtons = 'Underline,Subscript,Superscript,SpecialChar,HorizontalRule,Styles,Iframe,Flash';
config.format_tags = 'p;h2;h3;h4;h5';
config.defaultLanguage = 'ru';
config.skin = 'weloveit';
config.extraPlugins = 'nota';
config.language = 'ru';
config.forcePasteAsPlainText = true;
config.removePlugins = 'pastefromword,about';
config.disableAutoInline = true;
};
有什么想法吗?