【问题标题】:CKEditor TextArea Refresh And DestroyCKEditor TextArea 刷新和销毁
【发布时间】:2013-01-14 01:16:02
【问题描述】:

我遇到了一个问题,我的页面上有一个带有 CKEditor 的按钮。 按下按钮时,我想将文本附加到编辑器。

我使用了以下代码:

$('#mtxDescription').append($(this).data('key'));
CKEDITOR.instances['mtxDescription'].updateElement();

但是这不起作用。编辑没有反映更改。但是,当我检查编辑器时,我发现 textarea 确实显示了附加的适当文本,只是编辑器没有显示它。有谁知道解决这个问题的方法。另外,以防万一有人想知道,我的页面中确实引用了 jquery CKEditor 适配器脚本。

另外,如果一个有点相关但单独的问题。

我有一个下拉列表,允许用户在页面上显示的文本区域(CKEDitor WIZIWIG)和再次返回正常文本区域之间切换。但是,如果不从字面上刷新页面,我似乎无法做到这一点,我想通过 javascript/jquery 来做到这一点,这样我就不必在更改下拉选择时刷新页面。我已经尝试过内置的销毁方法。它似乎没有在视觉上做任何事情,编辑器不会恢复到简单的文本区域。

以防万一您需要更多代码,以下是我的 HTML 页面的样子:

<textarea id="mtxDescription" name="mtxDescription"></textarea>

这是我如何初始化编辑器

CKEDITOR.replace('mtxDescription', {
    sharedSpaces: { top: 'ed-top'}
});

【问题讨论】:

  • 首先你不能附加到一个文本区域,你必须使用val()来设置它的值。您可以通过 ckEditor API 完成您描述的所有操作,包括更新编辑器 html 和 View Source 以切换 textarea/WYSIWYG
  • val 也不起作用。您可以附加到文本区域,至少在 Firefox 中,因为我以前做过。另外,我不想切换查看源选项,我真的希望它再次成为标准文本区域。
  • 切换 View Source 显示 textarea,我强烈反对将 append 作为跨浏览器的做法.. 它不起作用
  • 无论如何...,我将使用 val 而不是 append。但它仍然没有显示在编辑器中。 textarea 由 jquery 更新,因为我可以看到 firebug,但编辑器没有显示更改。我需要一些可以刷新编辑器的东西。
  • 我能够通过使用以下代码而不是使用 jQuery CKEDITOR.instances.mtxDescription.insertHtml($(this).data('key')) 来解决这个问题我仍然需要一种方法在运行时删除编辑器。

标签: javascript jquery textarea ckeditor


【解决方案1】:

我能够通过使用以下代码而不是使用 jQuery CKEDITOR.instances.mtxDescription.insertHtml($(this).data('key')) 来解决这个问题我仍然需要一种在运行时删除编辑器的方法.

【讨论】:

    猜你喜欢
    • 2015-04-14
    • 2016-11-19
    • 1970-01-01
    • 2011-04-06
    • 2011-03-22
    • 2015-12-18
    • 2014-08-23
    • 2013-10-24
    • 1970-01-01
    相关资源
    最近更新 更多