最近百度了一下网上的资料并看了一下ueditor的api,整理并测试了一下,发现还真好用,现在和大家分享一下
这里配置了一个正常的ueditor编辑器和编辑器外面的两个上传按钮。
首先引入js文件:
<script src="ueditor/ueditor.config.js"></script>
<script src="ueditor/ueditor.all.min.js"></script>
然后在html中放置编辑器,为了不使独立上传图片或者文件影响到正常的编辑器,这里要多设置一个,myEditor是正常使用的编辑器,upload_ue为隐藏的编辑器。
<script type="text/plain" id="myEditor"></script>
<script type="text/plain" id="upload_ue"></script>
分别实例化两个编辑器,这里只做简单配置:
<script type="text/javascript">
var editor = UE.getEditor('myEditor',{
initialFrameWidth: 800,
initialFrameHeight: 300,
});
</script>
<script type="text/javascript">
//重新实例化一个编辑器,防止在上面的editor编辑器中显示上传的图片或者文件
var _editor = UE.getEditor('upload_ue');
_editor.ready(function () {
//设置编辑器不可用
_editor.setdisabled();
//隐藏编辑器,因为不会用到这个编辑器实例,所以要隐藏
_editor.hide();
_editor.addListener('beforeInsertimage',function (t,arg) {
//将地址赋值给相应的input,只去第一张图片的路径
$("#picture").attr("value",arg[0].src);
//图片预览
$("#preview").attr("src",arg[0].src);
})
_editor.addListener('afterUpfile',arg) {
$("#file").attr("value",_editor.options.filePath + arg[0].url);
})
});
function upImage() {
var myImage = _editor.getDialog("insertimage");
myImage.open();
}
function upFiles() {
var myFiles = _editor.getDialog("attachment");
myFiles.open();
}
</script>
最后为了能使文件上传后把上传的文件路径填充到input里面去,要添加侦听的事件到 dialogsattachmentattachment.html文件中,在 editor.execCommand("insertHTML",str);前面添加,filesList是上传的文件列表,这里只取第一个上传的文件的地址:
editor.fireEvent('afterUpfile',filesList);
<input type="text" id="picture" name="cover" /><a href="javascript:void(0);" onclick="upImage();">上传图片</a>
<input type="text" id="file" /><a href="javascript:void(0);" onclick="upFiles();">上传文件</a>
配置完毕。