我正在使用TinyMCE 3.5和jQuery插件.
我使用tinyMCE.init()方法没有指定模式,然后将编辑器附加到我的元素:
tinyMCE.execCommand('mceToggleEditor',false,jQuery(this).attr('id'));
编辑器在Internet Explorer 8中成功加载,但抛出“Object required”错误
从第22行的ForceBlocks.js抛出错误,如下所示:
21 while (node != rootNode) {
22 if (blockElements[node.nodeName])
23 return;
24
25 node = node.parentNode;
26 }
在firefox,chrome或safari中没有错误.
tinyMCE.execCommand方法的上下文是:
ADMIN = {
triggerTextArea: function (event) {
currentTarget = event.currentTarget;
if(jQuery(currentTarget).hasClass('ajaxform'))
{
textareas = jQuery(this).find('.question-text-editor textarea');
addTextArea = true;
} else {
textareas = jQuery(this).closest('.question-wrapper').find('.question-text-editor textarea');
addTextArea = (jQuery(this).is(':checked') && jQuery(this).val() == 'html');
}
if(addTextArea == true)
{
textareas.each(function() {
console.log(jQuery(this).attr('id'));
tinyMCE.execCommand('mceToggleEditor',false,jQuery(this).attr('id'));
});
} else {
textareas.each(function() {
editorId = jQuery(this).attr('id');
tinymce.get(editorId).hide();
});
}
}
}
if(addTextArea == true)
{
textareas.each(function() {
console.log(jQuery(this).attr('id'));
tinyMCE.execCommand('mceToggleEditor',false,jQuery(this).attr('id'));
});
} else {
textareas.each(function() {
editorId = jQuery(this).attr('id');
tinymce.get(editorId).hide();
});
}
}
}
解决方法:
forced_root_block包含在related question中.对于IE,如果编辑器在execCommand加载事件后没有立即可用,则必须使用poll文档.