zoukankan      html  css  js  c++  java
  • 关于在vue 中使用百度ueEditor

    1. 安装  npm i vue-ueditor --save-dev 

    2.从nodemodels  取出ueditor1_4_3_3 这整个目录,放入vue 的 static 目录  

    3.配置 ueditor.config.js 的  21行代码  更改路径   var URL = '/static/ueditor1_4_3_3/' || getUEBasePath();  

     (1)     serverUrl: URL + 'php/controller.php',  这里是你配置的上传内容的 url ;不需要可以删除;

     (2) 部分人使用时出现以下报错:
        Uncaught TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them...
        这个问题是因为项目中的使用的babel默认添加了use strict造成,可参考 https://segmentfault.com/q/1010000007415253
        我采用的是链接中答案的第三种方式:添加了babel-plugin-transform-remove-strict-mode,并在.babelrc里添加下列代码;

        2-1.1   或者在webpack.base.conf.js 添加

      loaders: [{
        test: /.js$/,
        exclude: /(node_modules|bower_components)/,
        loader: 'babel',
        query: {
        presets: ['es2015']
      }}]

    4.如果不需要以组建的方式引入 则 可以这么写 ;

     <VueUeditor ueditorPath="./../../static/ueditor/" @ready="editorReady"></VueUeditor>

    <script>
      import VueUeditor from 'vue-ueditor';
      import ueditor from '../components/UE';
      export default {
        components: {VueUeditor,ueditor},
        data() {
          return {
            defaultMsg: '这里是UE测试',
            content1: '这里是UE',
            ue1: "ue1",
            config: {
              initialFrameWidth: 800,
              initialFrameHeight: 350
            }
          }
        },
        methods: {
          	getUEContent() {
    	    // 获取ueditor值
    	        let content1 = UE.getEditor(this.ue1).getContentTxt();;
    	        console.log(content1)
    	},  
        	editorReady(editorInstance){
          		editorInstance.setContent("哈哈哈")
          	}
        }
      };
    

      5.如果要自定义组件的方式 在每个页面引入 则  在components 中新建ue.vue 文件 贴入这个代码 

    <template>
            <script :id=id type="text/plain"></script>
    </template>
    
    <script>
        export default {
            name: 'UE',
            data() {
                return {
                    editor: null
                }
            },
            props: {
                content: {
                    type: String,
                    default:''
                },
                config: {
                    type: Object,
                },
                id: {
                    type: String
                }
            },
            mounted() {
                const _this = this;
                _this.editor = UE.getEditor(_this.id, _this.config); // 初始化UE
                _this.editor.addListener("ready", function () {
                    _this.editor.setContent(_this.content); // 确保UE加载完成后,放入内容。
                });
            },
            methods: {
                getContent() { 
                		// 获取内容方法
                    return this.editor.getContentTxt();;
                }
            },
            destroyed() {
                this.editor.destroy();
            },
        }
    </script>
    

    然后就可以   import ueditor from '../components/UE';   //引入

    <ueditor :content=content1 :config=config :id="ue1"></ueditor>  //使用

    <script>
      import VueUeditor from 'vue-ueditor';
      import ueditor from '../components/UE';
      export default {
        components: {VueUeditor,ueditor},
        data() {
          return {
            defaultMsg: '这里是UE测试',
            content1: '这里是UE',
            ue1: "ue1",
            config: {
              initialFrameWidth: 800,
              initialFrameHeight: 350
            }
          }
        },
        methods: {
              getUEContent() {
            // 获取ueditor值
                let content1 = UE.getEditor(this.ue1).getContentTxt();;
                console.log(content1)
            },
            editorReady(editorInstance){
                  editorInstance.setContent("哈哈哈")
              }
        }
      };
    </script>  

      这样就可以了。

      附配置清单 

    1. 实例化编辑器到id为 container 的 dom 容器上:
       var ue = UE.getEditor('container');
    2. 设置编辑器内容:
        ue.setContent('<p>hello!</p>');
    3. 追加编辑器内容:
        ue.setContent('<p>new text</p>', true);
    4. 获取编辑器html内容:
        var html = ue.getContent();
    5. 获取纯文本内容:
        ue.getContentTxt();
    6. 获取保留格式的文本内容:
        ue.getPlainTxt();
    7. 判断编辑器是否有内容:
        ue.hasContents();
    8. 让编辑器获得焦点:
        ue.focus();
    9. 让编辑器失去焦点
        ue.blur();
    10. 判断编辑器是否获得焦点:
        ue.isFocus();
    11. 设置当前编辑区域不可编辑:
        ue.setDisabled();
    12. 设置当前编辑区域可以编辑:
        ue.setEnabled();
    13. 隐藏编辑器:
        ue.setHide();
    14. 显示编辑器:
        ue.setShow();
    15. 清空内容:
        ue.execCommand('cleardoc');
    16. 读取草稿箱:
        ue.execCommand('drafts');
    17. 清空草稿箱:
      ue.execCommand('clearlocaldata');
    

     本来需求是 从后台读取文件内容,内容是代码,返回到前台,高亮显示像 ide一样可以实时编辑代码,代码可以高亮,类似编辑器的主题一样,然后可以保存提交 到后台,找了半天没找到合适的插件;

      如果有推荐的欢迎Q我   qq735675958,一起交流下.谢谢

      

      

  • 相关阅读:
    Java经典逻辑编程50题 (转)
    Programmingbydoing
    前端测试框架jest 简介
    puppeteer入门
    面向对象编程
    Java常识
    JS 变量
    jmeter 压力测试
    jmeter 安装
    Java 数据驱动测试
  • 原文地址:https://www.cnblogs.com/qq735675958/p/9641786.html
Copyright © 2011-2022 走看看