dreamer·强 2019-04-08 18:33 采纳率: 0%
浏览 1758
已结题

在编辑文档页面使用CKEditor5中如何显示接口中获取的值

现在用vue编辑页面中需要使用CKEditor5富文本编辑器,
但是接口中获取的数据无法显示在CKEditor5中。

<el-form-item>
    <div class="goods-editor">
        <!-- 工具栏容器 -->
        <div id="toolbar-container"></div>
        <!-- 编辑器容器 -->
        <div id="editor">
            <p  v-html="articleData.content"></p>
        </div>
    </div>
</el-form-item>

并且初始化的时候也赋值过


 //初始化编辑器
      CKEditor.create(document.querySelector("#editor"), {
        removePlugins: ["MediaEmbed"], //除去视频按钮
        language: "zh-cn", // 中文
        ckfinder: {
          uploaded: 1,
          url: "/"
          // 后端处理上传逻辑返回json数据,包括uploaded(选项true/false)和url两个字段
        }
      })
        .then(editor => {
          const toolbarContainer = document.querySelector("#toolbar-container");
          toolbarContainer.appendChild(editor.ui.view.toolbar.element);
          // 加载了适配器
          editor.plugins.get("FileRepository").createUploadAdapter = loader => {
            return new UploadAdapter(loader,editor,this);
          };

          this.editor = editor; // 将编辑器保存起来,用来随时获取编辑器中的内容等,执行一些操作
          this.editor.setData(this.articleData.content)
        })
        .catch(error => {
          console.error(error);
        });

但无论如何都是无法显示。

图片说明

但是在控制台看代码的话可以看到在对应id内是有数据了
图片说明

希望能有大神解答

  • 写回答

2条回答 默认 最新

  • 无明之徒 2019-04-09 10:11
    关注
         CKEDITOR.replace('txtContent', { toolbar: 'Basic' });

    修改为:

         var myeditor=CKEDITOR.replace('txtContent', { toolbar: 'Basic' });

    即赋值给一个变量就OK了,然后使用下面的方式读取文本域的值:

    myeditor.document.getBody().getText(); //取文本形式的值
    myeditor.document.getBody().getHtml(); //取包含html代码的值
    如果要赋值那么就是

    myeditor.setData("需要赋值的内容");

    解决方案二:
    获取CKEditor的html文本、纯文本、被选中的内容及赋值

    2 <%=Html.TextAreaFor(Model => Model.WORK_INTRODUCTION)%>
    3 <br> 4 CKEDITOR.replace(&#39;WORK_INTRODUCTION&#39;);<br> 5

    1、获取CKEditor被选中的内容
    var mySelection = CKEDITOR.instances.WORK_INTRODUCTION.getSelection();
    if (CKEDITOR.env.ie) {
    mySelection.unlock(true);
    data = mySelection.getNative().createRange().text;
    } else {
    data = mySelection.getNative();
    }
    2、获取CKEditor纯文本
    var CText=CKEDITOR.instances.WORK_INTRODUCTION.document.getBody().getText(); //取得纯文本

    3、获取CKEditor带HTML标签的文本
    var CHtml= CKEDITOR.instances.WORK_INTRODUCTION.getData();

    4、给CKEditor赋值

    CKEDITOR.instances.WORK_INTRODUCTION.setData("要显示的文字内容");

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器