CKEditor InnerHTML 错误

发布于 2024-12-12 16:33:44 字数 771 浏览 2 评论 0原文

我有两个 CKeditor 字段,它们是表单的一部分。我的页面上有一些操作按钮,因此每当我单击“清除”或“取消”时,此功能就会与其他内容一起触发:

    CKEDITOR.instances['ed1'].updateElement();
    CKEDITOR.instances['ed1'].setData('');
    CKEDITOR.instances['ed2'].updateElement();
    CKEDITOR.instances['ed2'].setData('');

这样我就可以清除 CKEditor 字段的内容。问题是,如果我单击“取消”,然后返回页面并单击“清除”,Internet Explorer 会给出“innerHTML 为空或未定义”JS 错误。

它在其他浏览器中工作正常,只有当我从不同的按钮连续执行两次更新时才会发生。有解决方法吗?

CKEditor 初始化 onReady:

 CKEDITOR.replace('ed1', { htmlEncodeOutput: true, width:"700",toolbar: 'Basic'
});

CKEDITOR.replace('ed2', { htmlEncodeOutput: true, width:"700",toolbar: 'Basic'
});

我可能应该补充一点,每当我使用取消按钮隐藏表单并显示其他内容时,我都会使用 .show().hide() 。没有页面重新加载。

I have two CKeditor fields that are a part of the form. I have some action buttons on the page, so whenever I click either 'clear' or 'cancel' this function is fired along with other stuff:

    CKEDITOR.instances['ed1'].updateElement();
    CKEDITOR.instances['ed1'].setData('');
    CKEDITOR.instances['ed2'].updateElement();
    CKEDITOR.instances['ed2'].setData('');

That way I am cleaning the contents of the CKEditor fields. The problem is that if I click 'cancel', then go back to the page and click "clear", Internet Explorer gives an "innerHTML is null or undefined" JS error.

It works fine in other browsers and only happens if I perform the update twice in a row from different buttons. Is there a workaround for that?

CKEditor initialization onReady:

 CKEDITOR.replace('ed1', { htmlEncodeOutput: true, width:"700",toolbar: 'Basic'
});

CKEDITOR.replace('ed2', { htmlEncodeOutput: true, width:"700",toolbar: 'Basic'
});

I probably should add that I use .show() and .hide() whenever I use cancel button to hide the form and show other stuff. There's no page reload.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜扑 2024-12-19 16:33:44

我找到了这个问题的解决方案。这样做的原因是因为我的 clear 方法是使用 jQuery bind 函数触发的,并且没有放置在 onReady 函数中,因此它将事件绑定在一起并给出此错误。解决这个问题的方法是首先使用unbind

I found the solution to this problem. The reason it was doing that because my clear method was fired using jQuery bind function and wasn't placed in the onReady function, so it was binding the events together and giving this error. The solution to this was to use unbind first.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文