1. 程式人生 > >requirejs整合百度編輯器ueditor

requirejs整合百度編輯器ueditor

Ueditor版本:1.4.3.1 關鍵點: 1. 利用requirejs的shim載入editor.all.js並匯出到全域性變數 2. 通過shim的deps載入 ueditor.config.js 和 ZeroClipboard.min.js 3. 利用init回撥方法將ZeroClipboard匯出到window物件中,避免因為requirejs導致ZeroClipboard沒有加入window物件中,進而導致ueditor找不到ZeroClipboard報錯的問題 4. 通過UEDITOR_HOME_URL定義編輯器資原始檔根路徑 具體如下: 1. 配置ueditor模組路徑 在requirejs.config的paths引數中,配置ueditor模組中相關檔案的路徑:
paths: { 'baidueditor': '/assets/libs/ueditor/ueditor.all', 'ueditorconfig': '/assets/libs/ueditor/ueditor.config', 'zeroclipboard': '/assets/libs/ueditor/third-party/zeroclipboard/ZeroClipboard' } 2. 配置ueditor依賴模組 在requirejs.config的shim引數中,配置ueditor依賴模組: shim: { 'baidueditor': { //注意:此處的依賴順序不能顛倒 deps: ['zeroclipboard','ueditorconfig'],
exports: 'UE', init:function(ZeroClipboard){ //匯出到全域性變數,供ueditor使用 window.ZeroClipboard = ZeroClipboard; } } } 3. 定義Ueditor編輯器資原始檔根路徑 在ueditor.config.js檔案中,定義Ueditor編輯器資原始檔根路徑: (function () { window.UEDITOR_HOME_URL = "/assets/libs/ueditor/"; var URL = window.UEDITOR_HOME_URL || getUEBasePath(); ... })();
4. 如何使用 <script id="container" name="content" type="text/plain"></script> <script type="text/javascript"> require(['baidueditor'],function (UE) { var editor = UE.getEditor('container'); }); </script>