最近百度了一下网上的资料并看了一下ueditor的api,整理并测试了一下,发现还真好用,现在和大家分享一下
这里配置了一个正常的ueditor编辑器和编辑器外面的两个上传按钮。
首先引入js文件
1 <script src="ueditor/ueditor.config.js"></script> 2 <script src="ueditor/ueditor.all.min.js"></script>
然后在html中放置编辑器,为了不使独立上传图片或者文件影响到正常的编辑器,这里要多设置一个,myEditor是正常使用的编辑器,upload_ue为隐藏的编辑器。
1 <script type="text/plain" id="myEditor"></script> 2 <script type="text/plain" id="upload_ue"></script>
分别实例化两个编辑器,这里只做简单配置
1 <script type="text/javascript"> 2 var editor = UE.getEditor('myEditor', { 3 initialFrameWidth: 800, 4 initialFrameHeight: 300, 5 }); 6 </script>
1 <script type="text/javascript"> 2 //重新实例化一个编辑器,防止在上面的editor编辑器中显示上传的图片或者文件 3 var _editor = UE.getEditor('upload_ue'); 4 _editor.ready(function () { 5 //设置编辑器不可用 6 _editor.setDisabled(); 7 //隐藏编辑器,因为不会用到这个编辑器实例,所以要隐藏 8 _editor.hide(); 9 //侦听图片上传 10 _editor.addListener('beforeInsertImage', function (t, arg) { 11 //将地址赋值给相应的input,只去第一张图片的路径 12 $("#picture").attr("value", arg[0].src); 13 //图片预览 14 $("#preview").attr("src", arg[0].src); 15 }) 16 //侦听文件上传,取上传文件列表中第一个上传的文件的路径 17 _editor.addListener('afterUpfile', function (t, arg) { 18 $("#file").attr("value", _editor.options.filePath + arg[0].url); 19 }) 20 }); 21 //弹出图片上传的对话框 22 function upImage() { 23 var myImage = _editor.getDialog("insertimage"); 24 myImage.open(); 25 } 26 //弹出文件上传的对话框 27 function upFiles() { 28 var myFiles = _editor.getDialog("attachment"); 29 myFiles.open(); 30 } 31 </script>
最后为了能使文件上传后把上传的文件路径填充到input里面去,要添加侦听的事件到 dialogs\attachment\attachment.html文件中,在editor.execCommand("insertHTML",str);前面添加,filesList是上传的文件列表,这里只取第一个上传的文件的地址
1 editor.fireEvent('afterUpfile', filesList);
最后别忘了添加上传按钮
1 <input type="text" id="picture" name="cover" /><a href="javascript:void(0);" onclick="upImage();">上传图片</a> 2 <input type="text" id="file" /><a href="javascript:void(0);" onclick="upFiles();">上传文件</a>
配置完毕。
演示: http://demo.planetree.cn/Default.aspx?id=23
代码可以在我的小站下载: http://blog.planetree.cn/article/details/23