"执行insertHtml命令“”时出错;当在“”中插入html时,cleditor中的消息;查看源“;模式

"Error executing the insertHtml command" message in cleditor when inserting html in "View Source" mode

本文关键字:cleditor 消息 模式 当在 insertHtml 执行 quot 命令 出错 插入 html      更新时间:2023-09-26

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

关于cleditor,有人知道如何在"查看源代码"模式下使用"inserthtml"命令吗?

目前,我有一个方法附加到按钮的onclick处理程序,该处理程序将一个字符串插入到cleditor的文本区域:

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

以上内容在正常的富文本模式下运行良好,但如果您在ViewSource模式下尝试执行,则会发生以下情况:

  • 在Firefox中,它会弹出一条小消息,上面写着"执行错误inserthtml命令。"
  • 在Chrome中,它会无声地失败
  • 在IE中:
    • 如果文本区域为空,我在Visual Studio中的"y(a).passteHTML(c)"处找到一个断点,该断点看起来像jquery.cleditor.min.js,并显示以下消息:"Microsoft JScript运行时错误:未指定错误。"
    • 如果文本区域已经包含文本,我在同一文件中的"a.range[0].select()"处遇到断点,并显示以下消息:"Microsoft JScript运行时错误:由于错误800a025e,无法完成操作。"

嗨,我认为这是一个与非常相似的问题

我假设您粘贴的代码是在按钮单击功能中执行的在这个函数的末尾添加

return false;

添加类似的Something:

函数someClick(e,data){

    // Get the editor
    var editor = data.editor;
   editor.focus();
   setTimeout(function() { editor.execCommand('inserthtml', stringToInsert); }, 0);
   return false;

}

编辑:

是的,你是对的,这并不容易:当你处于正常模式时,你的文本区域实际上是iframe。当你处于源模式时,文本区域又变成了文本区域,所以要编辑里面的数据,你可以通过获取

$('#mytextarea').val()

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

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

如果你想在当前的光标坐标中插入,这应该会有所帮助:光标在文本区域中的位置(字符索引,而不是x/y坐标)