gpt4 book ai didi

javascript - CKEditor + IE7+8 'null or not an object' 错误

转载 作者:数据小太阳 更新时间:2023-10-29 05:24:09 25 4
gpt4 key购买 nike

我的问题是我正在使用 jQuery 的 CKEditor 3.4 插件,当在编辑器上执行 $(selector).val(html) 调用时,它在 IE 7+8 中给我一个错误:

错误:'this.$.innerHTML' 为空或不是对象

...在调试器中运行时,指向巨大的 CKEditor.js 中的这一行代码:

getHtml:function(){var i=this.$.innerHTML;return c?i.replace(/<\?[^>]*>/g,''):i;}

...在源代码中翻译为:

getHtml : function()
{
var retval = this.$.innerHTML;
// Strip <?xml:namespace> tags in IE. (#3341).
return CKEDITOR.env.ie ? retval.replace( /<\?[^>]*>/g, '' ) : retval;
},

我的违规代码(已删除,但仍然报错):

var editor_data = $("textarea#body").val();
$("textarea#body").val(editor_data);

...和后代的textarea代码:

<textarea name="body" rows="15" cols="50" class="wysiwyg" id="body"></textarea>

我试过在 IE8 的 jsFiddle 中重现,但奇怪的是它在那里按预期工作。我也很想提供一个工作样本,但不幸的是,由于我无法控制的原因,我不能提供。

我也试过这个修复,它清除了错误问题,但之后 setData 没有按预期工作,只是覆盖了编辑器的内容。我承认这个问题+修复有点让我头疼......:http://dev.ckeditor.com/ticket/4566

(抱歉,长篇文章:S)我也尝试过将直接 JavaScript API 用于 CKEditor(放弃 jQuery 集成),但它抛出了同样的错误。

有没有人希望我尝试解决此问题,或者有任何预感可能是什么?将不胜感激!

最佳答案

就我个人而言,我不喜欢包含修改源代码的现有答案,因为一旦您更新了 ckEditor,您就必须记住再次修改源代码。我遇到了与原始海报相同的问题,并找到了一个被认为是 hack 但完全可用的修复程序。简单地说,Try/Catch 使 IE8 中的一切变得美好而愉快。现在在IE7中测试。此修复的另一个好处是,当它失败时,您不会留下空白数据,而是获得您尝试检索的实际内容。

var editor = $('textarea.editor').ckeditorGet();
var vPageContent = "";
try{
vPageContent = editor.getData();//function call fails here
} catch(err){
vPageContent = editor.getData();//but will work here
}

关于javascript - CKEditor + IE7+8 'null or not an object' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3518765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com