requirejs整合百度編輯器ueditor
阿新 • • 發佈:2019-01-09
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>