• 百度UEditor -- ZeroClipboard is not defined


    项目中一直在使用UEditor,风平浪静。

    近期该项目引入了Requirejs,结果发现在有富文本编辑器的页面都会在控制台报出如下异常:

    Uncaught ReferenceError: ZeroClipboard is not defined ueditor.all.min.js:265

    经查看代码后发现 ueditor.../third-party/zeroclipboard/ZeroClipboard.js中 输出方法的地方是酱紫的

    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (typeof define === "function" && define.amd) {
        define(function() {
          return ZeroClipboard;
        });
      } else if (typeof module === "object" && module && typeof module.exports === "object" && module.exports) {
        module.exports = ZeroClipboard;
      } else {
        window.ZeroClipboard = ZeroClipboard;
      }

    意思就是说

    • 如果当前页面的模块加载模式是AMD的 则定义模块
    • 如果是CommonJs的,则输出到模块 ZeroClipboard
    • 否则 把  ZeroClipboard 定义为全局变量

    这样 解决方案就有两种。

    ①不适用模块加载模式来使用这个功能

    这样方法需要修改一点源码,把上面这段代码替换成如下代码即可

    1
    2
    3
    4
    5
    6
    7
    8
    if (typeof define === "function" && define.amd) {
        define(function() {
          return ZeroClipboard;
        });
      } else if (typeof module === "object" && module && typeof module.exports === "object" && module.exports) {
        module.exports = ZeroClipboard;
      }
      window.ZeroClipboard = ZeroClipboard;

    ②如果不修改源码,就得在模块加载时做处理了

    首先是修改配置

    1
    2
    3
    4
    5
    6
    require.config({
        baseUrl: '',
        paths: {
            ZeroClipboard: "./UEditor.../ZeroClipboard"//主要是加这句话
        }
    });

     然后是在调用这个模块并把模块定义到全局变量

    1
    2
    3
    require(['ZeroClipboard'], function (ZeroClipboard) {
        window['ZeroClipboard'] = ZeroClipboard;
    });
  • 相关阅读:
    多层装饰器执行顺序
    flask之 中间件 蓝图 falsk请求上下文 rquirements.txt threading.local 偏函数
    flask 之 在flask中使用websocket
    flask 之项目分文件使用sqlalchemy+flask-migrate djagno多数据库
    flask之六 sqlachemy详解 scoped_session线程安全 基本增删改查 多对多关系建立和操作 flask-sqlalchemy的使用
    远程连接linux开发项目
    INT104-lab9
    INT104-lab8
    INT104-lab7
    Java-数据结构-泛型BST-CPT102-tutorial Week6
  • 原文地址:https://www.cnblogs.com/Ting-log/p/9105488.html
Copyright © 2020-2023  润新知