摘要:使用場景圖片的拖拽指定區域進行上傳圖片粘貼進行上傳功能核心參考案例代碼定義模塊截圖粘貼如果是圖片讀取完成后,上傳上傳圖片返回一個數據拖拽上傳回調文件返回一個數據解析粘貼過來的內容,看是否有不是本站的圖片解析出來上傳到本站使用方法粘貼上傳圖
使用場景
圖片的拖拽指定區域進行上傳
圖片粘貼進行上傳功能
核心api參考File clipboardData案例代碼
Seajs 定義Tools模塊
/** * Created by zhaojunlike on 8/22/2017. */ define(function (require, exports, module) { /** * 截圖粘貼 * @param selector * @param callback */ exports.paste = function (selector, callback) { document.querySelector(selector).addEventListener("paste", function (ev) { var data = ev.clipboardData; var items = (event.clipboardData || event.originalEvent.clipboardData).items; for (var i in items) { var item = items[i]; //如果是圖片 if (item.kind === "file" && item.type.indexOf("image") > -1) { var blob = item.getAsFile(); var reader = new FileReader(); //reader讀取完成后,xhr上傳 reader.onload = function (event) { var base64 = event.target.result; //ajax上傳圖片 //返回一個base64數據 var img = {type: item.type, kind: item.kind}; if (typeof callback === "function") { callback(event.target.result, img, event); } }; // data url! reader.readAsDataURL(blob);//reader } } }); }; /** * 拖拽上傳 * @param selector * @param callback */ exports.drag = function (selector, callback) { var element = document.querySelector(selector); element.addEventListener("drop", function (e) { e.preventDefault(); var files = e.dataTransfer.files; for (var i = 0; i < files.length; i++) { //回調文件 //alert("Drop " + file[i].name.toString()); var reader = new FileReader(); var item = files[i]; reader.onload = function (event) { var base64 = event.target.result; //返回一個base64數據 var img = {type: item.type, name: item.name}; if (typeof callback === "function") { callback(event.target.result, img, event); } }; reader.readAsDataURL(files[i]);//reader } return false; }); element.addEventListener("dragenter", function (e) { e.stopPropagation(); e.preventDefault(); }); element.addEventListener("dragover", function (e) { e.dataTransfer.dropEffect = "copy"; e.stopPropagation(); e.preventDefault(); }); document.body.addEventListener("dragover", function (e) { e.stopPropagation(); e.preventDefault(); return false; }); } /** * 解析粘貼過來的內容,看是否有不是本站的圖片,解析出來上傳到本站 */ exports.parseImg = function () { } });
使用方法:
//粘貼上傳圖片 Edtools.paste("#post_content", function (base64, image, event) { $.post("{:url("api/uploader/upEditorImg")}",{base:base64}, function (ret) { layer.msg(ret.msg); if (ret.code === 1) { //新一行的圖片顯示 editor.insertValue(" ![" + ret.data.title + "](" + ret.data.path + ")"); } }); }); //拖拽上傳圖片 Edtools.drag("#post_content", function (base64, image, event) { $.post("{:url("api/uploader/upEditorImg")}",{base:base64}, function (ret) { layer.msg(ret.msg); if (ret.code === 1) { //新一行的圖片顯示 editor.insertValue(" ![" + ret.data.title + "](" + ret.data.path + ")"); } }); });
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/84812.html
摘要:此文研究中的拖放接口,提供各個屬性和方法的說明,解決拖放過程中的拖拽數據對象存儲和獲取問題。方法增加一個拖拽數據對象到屬性中,并返回增加的拖拽數據對象。若拖拽數據對象是文本字符串類型,通過回調函數獲取拖拽數據中的字符串數據。 此文研究Web API中的拖放接口,提供各個屬性和方法的說明,解決拖放過程中的拖拽數據對象存儲和獲取問題。 拖放API作用到兩個目標對象,分別是拖拽目標對象和放置...
摘要:發展原生拖放的發展大致可分為三個階段。在的實例基礎上,進一步制定了拖放的規范。也根據規范實現了原生拖放功能。被拖動的元素在放置目標范圍內移動時,會持續觸發該事件。參考資料拖放操作拖拽操作拖拽類型列表高級程序設計第版第章腳本編程原生拖放 發展 原生拖放的發展大致可分為三個階段:IE4、IE5+、HTML5。 IE4 是最早在網頁中引入 JavaScript 拖放功能的,當時只有圖像和選中...
閱讀 860·2021-11-19 11:29
閱讀 3354·2021-09-26 10:15
閱讀 2863·2021-09-22 10:02
閱讀 2436·2021-09-02 15:15
閱讀 1976·2019-08-30 15:56
閱讀 2413·2019-08-30 15:54
閱讀 2912·2019-08-29 16:59
閱讀 639·2019-08-29 16:20