成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

基于js粘貼事件paste的示例分析-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān)基于js粘貼事件paste的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

公司主營業(yè)務(wù):網(wǎng)站建設(shè)、網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出石嘴山免費(fèi)做網(wǎng)站回饋大家。

目前只有Chrome支持獲取剪切板中的圖片數(shù)據(jù)。還好需要這個功能的產(chǎn)品目前只支持ChromeSafari,一些Chrome的新特性是可以盡情使用了,還是能夠覆蓋到大部分用戶的。所以本文只討論Chrome如何使用和如何阻止Safari,原理大概了解了,再研究其他瀏覽器相關(guān)的問題就容易多了。

paste事件

可以用js給頁面中的元素綁定paste事件的方法,當(dāng)用戶鼠標(biāo)在該元素上或者該元素處于focus狀態(tài),綁定到paste事件的方法就運(yùn)行了。

綁定的元素不一定是input,普通的div也是可以綁定的,如果是給document綁定了,就相當(dāng)于全局了,任何時候的粘貼操作都會觸發(fā)。

事件對象

獲取事件對象

先寫一下事件綁定的代碼

pasteEle.addEventListener("paste", function (e){
 if ( !(e.clipboardData && e.clipboardData.items) ) {
  return;
 }
});

粘貼事件提供了一個clipboardData的屬性,如果該屬性有items屬性,那么就可以查看items中是否有圖片類型的數(shù)據(jù)了。Chrome有該屬性,Safari沒有。

clipboardData介紹

介紹一下clipboardData對象,它實(shí)際上是一個DataTransfer類型的對象,DataTransfer是拖動產(chǎn)生的一個對象,但實(shí)際上粘貼事件也是它。

clipboardData的屬性介紹

屬性類型說明
dropEffectString默認(rèn)是 none
effectAllowedString默認(rèn)是 uninitialized
filesFileList粘貼操作為空List
itemsDataTransferItemList剪切板中的各項(xiàng)數(shù)據(jù)
typesArray剪切板中的數(shù)據(jù)類型 該屬性在Safari下比較混亂

items介紹

items是一個DataTransferItemList對象,自然里面都是DataTransferItem類型的數(shù)據(jù)了。

屬性

items的DataTransferItem有兩個屬性kind和type

屬性說明
kind一般為string或者file
type具體的數(shù)據(jù)類型,例如具體是哪種類型字符串或者哪種類型的文件,即MIME-Type

方法

方法參數(shù)說明
getAsFile如果kindfile,可以用該方法獲取到文件
getAsString回調(diào)函數(shù)如果kindstring,可以用該方法獲取到字符串,字符串需要用回調(diào)函數(shù)得到,回調(diào)函數(shù)的第一個參數(shù)就是剪切板中的字符串

在原型上還有一些其他方法,不過在處理剪切板操作的時候一般用不到了。

types介紹

一般types中常見的值有

text/plain、text/html、Files
說明
text/plain普通字符串
text/html帶有樣式的html
Files文件(例如剪切板中的數(shù)據(jù))

簡單demo

pasteEle.addEventListener("paste", function (e){
 if ( !(e.clipboardData && e.clipboardData.items) ) {
  return ;
 }

 for (var i = 0, len = e.clipboardData.items.length; i < len; i++) {
  var item = e.clipboardData.items[i];

  if (item.kind === "string") {
   item.getAsString(function (str) {
    // str 是獲取到的字符串
   })
  } else if (item.kind === "file") {
   var pasteFile = item.getAsFile();
   // pasteFile就是獲取到的文件
  }
 }
});

注意如果是string類型的數(shù)據(jù),可能針對具體是text/plain、text/html進(jìn)行分別的處理。

坑在這里

根據(jù)親自測驗(yàn),遇到了一個很大的坑,暫時還不知道該怎么解決:

當(dāng)ctrl+c復(fù)制圖片并粘貼之后,clipboaddata的

DataTransferItem {kind: "string", type: "text/html"}

即輸出的str:

<meta http-equiv="content-type" content="text/html; charset=utf-8"><img src="https://cache.yisu.com/upload/information/20200622/114/66116.jpg" alt="大媽們在雅西高速上跳廣場舞 被警察及時阻止"/>

當(dāng)右鍵復(fù)制圖片并粘貼之后,

DataTransferItem {kind: "file", type: "image/png"}

所以這里對于圖片如果想要獲取粘貼的圖片進(jìn)行上傳,只有直接右鍵復(fù)制的圖片才能識別到,ctrl+c的并不能識別.....

感謝各位的閱讀!關(guān)于“基于js粘貼事件paste的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前名稱:基于js粘貼事件paste的示例分析-創(chuàng)新互聯(lián)
當(dāng)前地址:http://jinyejixie.com/article34/dijope.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、電子商務(wù)、用戶體驗(yàn)、網(wǎng)站排名全網(wǎng)營銷推廣、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
宁安市| 宜兰县| 襄樊市| 衡东县| 广东省| 会泽县| 宁都县| 中西区| 八宿县| 平塘县| 分宜县| 巧家县| 伊通| 乐亭县| 崇仁县| 耒阳市| 武宣县| 咸宁市| 营口市| 永仁县| 新野县| 秀山| 来宾市| 屏东县| 延吉市| 盐池县| 南部县| 车险| 偏关县| 台中县| 刚察县| 宝清县| 香港| 庆阳市| 闽侯县| 安丘市| 英山县| 宜都市| 罗定市| 崇义县| 峨边|