用于RapidSpell的CKEditor自定义插件会在IE 8上引发错误

时间:2014-02-26 16:39:06

标签: internet-explorer-8 ckeditor

我使用下面的代码为RapidSpell创建了一个自定义插件。

CKEDITOR.plugins.add('spell',
    {
        init: function (editor) {
            editor.addCommand('spell', {
                exec: function (editor) {
                    rapidSpell.ayt_aytEnabled = false;
                    spell('cke_contents_Model_NoteText', 'dialog');
                }
            });

            editor.ui.addButton('spell', {
                label: 'Spell Check',
                command: 'spell',
                icon: this.path + 'icons/spell.png'
            });
        }
});

function spell(id, mode) {
    var ifr = document.getElementsByClassName('cke_wysiwyg_frame cke_reset')[0];
    ifr.setAttribute('id', id + '_ifr');
    ifr.id = id + '_ifr';

    if (mode == 'dialog')
        rapidSpell.dialog_spellCheck(true, ifr.id);
    else
        rapidSpell.ayt_spellCheck(ifr.id);
}

它在IE 9中正常工作但在IE 8中引发了Javascript错误。我正在使用CKEditor 4,它也被认为与IE8兼容。所以我想知道问题出在哪里。

  

消息:对象不支持此属性或方法    行:21    查尔:5    代码:0    URI:https://btsdebasctk01.wrbts.ads.wrberkley.com/Library/Scripts/ckeditor4/plugins/inlinespell/plugin.js?t=E0LB

1 个答案:

答案 0 :(得分:1)

在IE9中添加了对the getElementsByClassName function的支持。

如果您不需要支持IE8之前的任何内容,请改用querySelectorAll

如果您需要支持IE7或更早版本,请使用this one之类的polyfill,或支持此功能的库,例如jQuery