标签:html js upload image ckeditor
(function () { var imageUploadId = "imageUploadId_" + new Date().getTime() + parseInt(Math.random() * 1000); // 生成唯一编号 function init(editor) { return { title: editor.lang.image["title"], minWidth: 420, minHeight: 360, onShow: function () { var selectedImg = editor.getSelectedHtml(); var imgSrc = $(selectedImg["$"].firstChild).attr("src"); var imgStyle = $(selectedImg["$"].firstChild).attr("style"); $("#" + imageUploadId + " img.previewImage").attr("src", imgSrc); $("#" + imageUploadId + " img.previewImage").attr("style", imgStyle); }, onOk: function () { var previewImg = $("#" + imageUploadId + " img.previewImage"); var previewImageSrc = previewImg.attr("src"); var previewImageStyle = previewImg.attr("style"); if (previewImageSrc == null || previewImageSrc == "") { return; } var image = editor.document.createElement(‘img‘); image.setAttribute("src", previewImageSrc); image.setAttribute("style", previewImageStyle); editor.insertElement(image); }, onLoad: function () { }, onHide: function () { $("#" + imageUploadId + " img.previewImage").attr("src", ""); $("#" + imageUploadId + " .width").val(""); $("#" + imageUploadId + " .height").val(""); $("#" + imageUploadId + " img.previewImage").css("width", "inherit"); $("#" + imageUploadId + " img.previewImage").css("height", "inherit"); }, contents: [ { id: "info", label: editor.lang.image.infoTab, accessKey: "I", elements: [{ type: "html", html: "<div style=‘margin-bottom:20px‘ id=‘" + imageUploadId + "‘ >" + "<div style=‘padding-bottom:20px;‘>" + "<a class=‘uploadFile cke_dialog_ui_button cke_dialog_ui_button_ok‘ style=‘cursor: pointer;‘>上传文件</a>" + "<label style=‘margin-left:20px;‘>宽度</label><input class=‘width cke_dialog_ui_input_text‘ style=‘width:120px;‘ type=‘text‘/>px" + "<label style=‘margin-left:20px;‘>高度</label><input class=‘height cke_dialog_ui_input_text‘ style=‘width:120px;‘ type=‘text‘/>px" + "</div>" + "<img class=‘previewImage‘/>" + "</div>" }] }] } }; CKEDITOR.dialog.add("image", function (editor) { return init(editor) }); // 注册事件 $("#" + imageUploadId + " .uploadFile").ysSimpleUploadFile({ changeCallback: function (file) { var fileReader = new FileReader(); fileReader.onload = function () { $("#" + imageUploadId + " img.previewImage").attr("src", this.result); }; fileReader.readAsDataURL(file); } }); $(document).on("keyup", "#" + imageUploadId + " .width", function (e) { e.stopPropagation(); e.preventDefault(); var val = $(this).val(); if (isNaN(parseInt(val))) { return; } $("#" + imageUploadId + " img.previewImage").css("width", val); }); $(document).on("keyup", "#" + imageUploadId + " .height", function (e) { e.stopPropagation(); e.preventDefault(); var val = $(this).val(); if (isNaN(parseInt(val))) { return; } $("#" + imageUploadId + " img.previewImage").css("height", val); }); })();
2. 创建 ys_simple_file_upload.js
(function($){ var defaultSettings = { acceptTypes:["jpg","png"], // 接受的上传文件类型 changeCallback:function(file){ } // 自定义input[type=file] change事件 }; var renderHtml = "<input type=‘file‘ style=‘display:none;‘/>"; // 添加隐藏的 function renderInputFile(target,settings){ // 生成dialog唯一标识 var id = "ys_simple_file_upload_"+new Date().getTime()+""+parseInt(Math.random()); $(target).attr("ys_simple_file_upload",id); $(renderHtml).attr("id",id).appendTo("html"); // 添加到文档中去 return $("#"+id); } function bindEventHandlers(container,settings){ var changeCallback = settings.changeCallback; $(container).change(function(e){ e.preventDefault(); e.stopPropagation(); var file = e.target.files[0]; if(file==null){ return; } if(!validateFileType(file,settings)){ alert("文件类型不正确!"); return; } changeCallback(file); // 清除value $(this).val(""); }); } // 验证文件类型 function validateFileType(file,settings){ var acceptTypes = settings.acceptTypes; var name = file.name; var fileSuffix = name.substr(name.lastIndexOf(".")+1); for(var i=0;i<acceptTypes.length;i++){ var acceptType = acceptTypes[i]; if(acceptType==fileSuffix){ return true; } } return false; } var options = { ysSimpleUploadFile:function(settings) { var mergedSettings = {}; $.extend(mergedSettings,defaultSettings,settings); var container = renderInputFile(this,mergedSettings); bindEventHandlers(container,mergedSettings); $(document).on("click",$(this)["selector"],function(e){ e.preventDefault(); e.stopPropagation(); $(container).click(); }); //$(this).click(function(e){ // e.preventDefault(); // e.stopPropagation(); // $(container).click(); //}); } }; $.fn.extend(options); })(jQuery);
3. editor.html
<!DOCTYPE html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title></title> <body> <textarea id="editor"></textarea> <script src="../static/dist/js/jquery-1.11.3.min.js"></script> <script src="../static/dist/js/ckeditor.js"></script> <script src="../static/js/ys_ui_plugin/ys_simple_file_upload.js"></script> <script src="../static/dist/js/plugins/imageupload/dialogs/image.js"></script> <script> CKEDITOR.replace( ‘editor‘); </script> </body> </html>
4. 效果
标签:html js upload image ckeditor
原文地址:http://antlove.blog.51cto.com/10057557/1731641