日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JavaScript实现黏贴上传图片功能

發布時間:2023/12/20 javascript 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaScript实现黏贴上传图片功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這周工作中,遇到了一個文章編輯的功能需求,需要支持圖片黏貼上傳并預覽,但是使用我們公司自己封裝的富文本編輯器,發現居然沒有黏貼上傳圖片的功能,額。。。心想,公司真是該有的功能沒有,不該有的功能一大堆。。。沒辦法,只能百度自己實現如何實現黏貼上傳圖片功能。

(1)html頁面

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>圖片黏貼上傳</title><style>#content {margin:0 auto;width:600px;height:600px;border:1px solid black;}</style> </head> <body><!-- 內容區域 --><div id="content" contenteditable="true"></div> </body> </html>

(2)添加監聽事件

監聽黏貼操作,即:ctrl+v的動作,js里面是paste事件。

<script>var content = document.getElemmentById("content")// 添加監聽事件pastecontent.addEventListener('paste', function (e){// 具體操作}); </script>

(3)從clipboardData中獲取黏貼板數據

監聽paste事件,方法參數中的e里面有個clipboardData屬性,該屬性中包含了黏貼板數據,可以是字符串文本,也可以是圖片文件。

<script>var content = document.getElemmentById("content")// 添加監聽事件pastecontent.addEventListener('paste', function (e){// 黏貼版沒有數據,則直接結束if (!(e.clipboardData && e.clipboardData.items)) {return;}// 黏貼版數據項,是個數組var data = e.clipboardData.items;if (data && data.length) {// TODO 具體操作}e.preventDefault();}); </script>

(4)判斷是文本還是圖片文件

if (data && data.length) {var item = data[0];// 判斷是文本還是圖片文件if (item.kind == 'string') {// 獲取文本內容var text = event.clipboardData.getData('Text');// 設置到content中content.innerHTML = text;} else if (item.kind == 'file') {// 獲取文件var file = item.getAsFile();// 圖片插入div中var reader = new FileReader();reader.readAsDataURL(file);reader.onload = function (event) {var img = document.createElement("img");img.src = event.target.result;content.appendChild(img);}} }

(5)完整代碼

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>圖片黏貼上傳</title><style>#content {margin:0 auto;width:600px;height:600px;border:1px solid black;}</style> </head> <body><!-- 內容區域 --><div id="content" contenteditable="true"></div> <script>var content = document.getElemmentById("content")// 添加監聽事件pastecontent.addEventListener('paste', function (e){// 黏貼版沒有數據,則直接結束if (!(e.clipboardData && e.clipboardData.items)) {return;}// 黏貼版數據項,是個數組var data = e.clipboardData.items;if (data && data.length) {var item = data[0];// 判斷是文本還是圖片文件if (item.kind == 'string') {// 獲取文本內容var text = event.clipboardData.getData('Text');// 設置到content中content.innerHTML = text;} else if (item.kind == 'file') {// 獲取文件var file = item.getAsFile();// 圖片插入div中var reader = new FileReader();reader.readAsDataURL(file);reader.onload = function (event) {var img = document.createElement("img");img.src = event.target.result;content.appendChild(img);}}}e.preventDefault();}); </script> </body> </html>

(6)效果演示

?以上就是使用JavaScript實現圖片黏貼上傳并且預覽的功能。???????

總結

以上是生活随笔為你收集整理的JavaScript实现黏贴上传图片功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。