文本插入时CKEditor未捕获TypeError

时间:2014-03-31 14:05:40

标签: javascript google-chrome ckeditor

奇怪的事情发生......

我在项目中使用内联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;
};

有什么想法吗?

0 个答案:

没有答案