2

我到处寻找解决方案,但没有找到答案,所以你是我最后的希望,Stackoverflow ......

关于 cleditor,有人知道如何使“查看源代码”模式下的“inserthtml”命令起作用吗?

目前,我有一个附加到按钮的 onclick 处理程序的方法,它将一个字符串插入到 cleditor 的 textarea 中:

editor.focus();
setTimeout(function() { editor.execCommand('inserthtml', stringToInsert); }, 0);

以上在普通富文本模式下工作正常,但如果您尝试在查看源代码模式下执行它,将发生以下情况:

  • 在 Firefox 中,它会弹出一条小消息,上面写着“执行 inserthtml 命令时出错”。
  • 在 Chrome 中,它会默默地失败
  • 在 IE 中:
    • 如果 textarea 为空,我在 Visual Studio 中的“y(a).pasteHTML(c)”处打了一个断点,类似于 jquery.cleditor.min.js,并显示以下消息,“Microsoft JScript 运行时错误:未指定的错误。”
    • 如果 textarea 已包含文本,我会在同一文件中的“a.range[0].select()”处设置断点,并显示以下消息“Microsoft JScript 运行时错误:由于错误 800a025e,无法完成操作。”
4

1 回答 1

0

嗨,我认为这是和这里非常相似的问题

我假设您粘贴的代码是在此函数末尾的按钮单击函数中执行的,只需添加

返回假;

添加类似的东西:

函数 someClick(e, 数据) {

    // Get the editor
    var editor = data.editor;

   editor.focus();
   setTimeout(function() { editor.execCommand('inserthtml', stringToInsert); }, 0);

   return false;

}

编辑:

是的,您是对的,这并不容易:当您处于正常模式时,您的文本区域实际上是 iframe,而当您处于源模式时,您的 textarea 再次成为 textarea,因此您可以通过以下方式编辑数据

$('#mytextarea').val()

如果你想在最后附加一些东西,你可以使用:

setTimeout(function() {$('#mytextarea').val($('#mytextarea').val()+'aaaaa') }, 3000);    

如果你想在当前的 ursor cosition 插入,这应该会有所帮助:Cursor position in a textarea (character index, not x/y 坐标)

于 2012-02-10T11:56:40.187 回答