時間 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; });
完工