时间 2015-11-26 11:34:00 博客园精华区 html
原文 http://www.cnblogs.com/TiestoRay/p/4997195.html编辑器
主题 UEditor ui
项目中一直在使用UEditor,风平浪静。spa
近期该项目引入了Requirejs,结果发如今有富文本编辑器的页面都会在控制台报出以下异常:htm
Uncaught ReferenceError: ZeroClipboard is not defined ueditor.all.min.js:265blog
经查看代码后发现 ueditor.../third-party/zeroclipboard/ZeroClipboard.js中 输出方法的地方是酱紫的ip
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; }
意思就是说get
这样 解决方案就有两种。源码
①不适用模块加载模式来使用这个功能博客
这样方法须要修改一点源码,把上面这段代码替换成以下代码便可
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;
②若是不修改源码,就得在模块加载时作处理了
首先是修改配置
require.config({ baseUrl: '', paths: { ZeroClipboard: "./UEditor.../ZeroClipboard"//主要是加这句话 } });
而后是在调用这个模块并把模块定义到全局变量
require(['ZeroClipboard'], function (ZeroClipboard) { window['ZeroClipboard'] = ZeroClipboard; });
完工