粘貼=>上傳 在這個操作過程中,我們需要做的就是:監聽粘貼事件=>" />

<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        js實現ctrl+v粘貼上傳圖片(兼容chrome、firefox、ie11)_javascript技巧

        來源:懂視網 責編:小采 時間:2020-11-27 20:52:01
        文檔

        js實現ctrl+v粘貼上傳圖片(兼容chrome、firefox、ie11)_javascript技巧

        js實現ctrl+v粘貼上傳圖片(兼容chrome、firefox、ie11)_javascript技巧:我們或多或少都使用過各式各樣的富文本編輯器,其中有一個很方便功能,復制一張圖片然后粘貼進文本框,這張圖片就被上傳了,那么這個方便的功能是如何實現的呢? 原理分析 提取操作:復制=>粘貼=>上傳 在這個操作過程中,我們需要做的就是:監聽粘貼事件=>
        推薦度:
        導讀js實現ctrl+v粘貼上傳圖片(兼容chrome、firefox、ie11)_javascript技巧:我們或多或少都使用過各式各樣的富文本編輯器,其中有一個很方便功能,復制一張圖片然后粘貼進文本框,這張圖片就被上傳了,那么這個方便的功能是如何實現的呢? 原理分析 提取操作:復制=>粘貼=>上傳 在這個操作過程中,我們需要做的就是:監聽粘貼事件=>
        我們或多或少都使用過各式各樣的富文本編輯器,其中有一個很方便功能,復制一張圖片然后粘貼進文本框,這張圖片就被上傳了,那么這個方便的功能是如何實現的呢?

        原理分析
        提取操作:復制=>粘貼=>上傳
        在這個操作過程中,我們需要做的就是:監聽粘貼事件=>獲取剪貼板里的內容=>發請求上傳
        為方便理解下文,需要先明白幾點:

      1. 我們只能上傳網頁圖(在網頁上右鍵圖片,然后復制)和截圖(截圖工具截的圖片,eg:qq截圖),不能粘貼上傳系統里的圖片(從桌面上、硬盤里復制),他們是存在完全不同的地方的。
      2. 截圖工具截的圖與在網頁點擊右鍵復制的圖是有些不同的,因此處理方式也不一樣。
      3. 知悉paste event這個事件:當進行粘貼(右鍵paste/ctrl+v)操作時,該動作將觸發名為'paste'的剪貼板事件,這個事件的觸發是在剪貼板里的數據插入到目標元素之前。如果目標元素(光標所在位置)是可編輯的元素(eg:設置了contenteditable屬性的div。textarea并不行。),粘貼動作將把剪貼板里的數據,以最合適的格式,插入到目標元素里;如果目標元素不可編輯,則不會插入數據,但依然觸發paste event。數據在粘貼的過程中是只讀的。此段是翻譯于w3.org_the-paste-action。
      4. 可惜的是,經過試驗,發現chrome(當前最新版)、firefox(當前最新版)、ie11對paste事件的實現并不是完全按照w3c來的,各自也有區別(w3c的paste標準也因此只是草案階段)。
      5. test代碼及截圖如下:

        chrome:

        
        

        1. event有clipboardData屬性,且clipboardData有item屬性,clipboardData.item中的元素(對象)有type和kind屬性;
        2. 無論在哪進行粘貼,均可觸發paste事件;
        3. 在div(未特殊聲明時,本文div均指設置了contenteditable屬性的div) 里粘貼截圖,不顯示圖片。img.src為base64編碼字符串;
        4. 在div里粘貼網頁圖片,直接顯示圖片,img.src為圖片地址。

        firefox:

        1. event有clipboardData屬性,clipboardData沒有item屬性;
        2. 只有在textarea里或者可編輯的div(里才粘貼才觸發paste事件;
        3. 在div里粘貼截圖,直接顯示圖片,img.src為base64編碼字符串;
        4. 在div里粘貼網頁圖片,表現同chrome。

        ie11:(不截圖了,可自行試驗,其他瀏覽器同理<( ̄▽ ̄)/,因為懶...)

      6. event沒有clipboardData屬性;
      7. 只在可編輯的div中粘貼才觸發paste事件;
      8. 在div里粘貼截圖,直接顯示圖片,img.src為base64編碼字符串;
      9. 在div里粘貼網頁圖片,表現同chrome。
      10. 監聽了paste事件,也知道了表現形式,接下來就是如何獲取數據了:
        chrome有特定的方法,利用clipboardData.items、getAsFile()、new FileReader()等api可以在paste回調函數里獲取到剪貼板里圖片的base64編碼字符串(無論是截圖粘貼的還是網頁圖片復制粘貼的),ie11,firefox沒有這樣的api,不過依然有辦法可以獲取,因為數據已經表現在img的src里了,對于截圖粘貼的,直接取img的src屬性值(base64),對于網頁粘貼的,則把地址傳給后臺,然后根據地址down下來,存在自己的服務器,最后把新地址返回來交給前端展示就ok了。為了保持一致性便于管理,統一將所有情況(截圖、網頁)中的img的src屬性替換為自己存儲的地址。因此可以得到以下核心代碼(注釋很全哦~~):

        html展示:

        
        
        Document
        
        

        前端js處理邏輯:

        用express.js搭的簡易后臺的接收邏輯:

        需要node環境:安裝node=>npm intall=>node app.js)

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        js實現ctrl+v粘貼上傳圖片(兼容chrome、firefox、ie11)_javascript技巧

        js實現ctrl+v粘貼上傳圖片(兼容chrome、firefox、ie11)_javascript技巧:我們或多或少都使用過各式各樣的富文本編輯器,其中有一個很方便功能,復制一張圖片然后粘貼進文本框,這張圖片就被上傳了,那么這個方便的功能是如何實現的呢? 原理分析 提取操作:復制=>粘貼=>上傳 在這個操作過程中,我們需要做的就是:監聽粘貼事件=>
        推薦度:
        標簽: 圖片 上傳 粘貼
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 免费看国产曰批40分钟| 黄色视屏在线免费播放| 51在线视频免费观看视频| 亚洲伊人久久成综合人影院| 污污免费在线观看| 亚洲成a人片在线观看老师| 女bbbbxxxx另类亚洲| 免费涩涩在线视频网| 色老板亚洲视频免在线观| 无码日韩精品一区二区三区免费| 大学生一级特黄的免费大片视频| 亚洲av专区无码观看精品天堂| 日本高清免费观看| 亚洲AV无码一区东京热久久 | 相泽南亚洲一区二区在线播放| 亚洲毛片免费视频| 久久久久亚洲av无码专区导航| 成人爽a毛片免费| 亚洲国产精品国自产拍AV| 国产美女视频免费观看的网站| 亚洲av午夜成人片精品电影| 亚洲午夜国产精品| 国产一级淫片a免费播放口| 精品国产亚洲男女在线线电影| 国产 亚洲 中文在线 字幕| 日韩精品无码免费一区二区三区| 最新国产AV无码专区亚洲| 深夜福利在线免费观看| 免费网站看v片在线香蕉| 在线a亚洲老鸭窝天堂av高清| 久久WWW色情成人免费观看| 亚洲精品国产精品国自产网站| 99精品全国免费观看视频| 中文日韩亚洲欧美制服| 在线视频免费观看www动漫| 久久亚洲中文字幕无码| mm1313亚洲精品无码又大又粗 | 国产精品亚洲AV三区| 国产免费私拍一区二区三区| 免费的黄色的网站| 亚洲一区二区三区香蕉|