DataTransferItemList.add()
此方法可以向DataTransferItemList集合新增一個新項。
如果新增成功,則返回此新新增項(DataTransferItem型別)。
關於DataTransferItemList內容參閱DataTransferItemList 集合一章節。
特別說明:此方法需要在dragstart事件處理函式中呼叫,否則無效。
語法結構一:
[JavaScript] 純文字檢視 複製程式碼DataTransferItem = DataTransferItemList.add(data, type)
引數解析:
(1).data:規定將要新增資料的字串內容。
(2).type:規定將要新增資料的MIME型別。
語法結構二:
[JavaScript] 純文字檢視 複製程式碼DataTransferItem = DataTransferItemList.add(file)
引數解析:
(1).file:規定將要新增的file型別物件。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> p{ width:100px; height:50px; background-color:red; } #box { width:300px; height:100px; background-color:#ccc; } </style> <script> window.onload=function(){ let odiv=document.getElementById("box"); let op=document.getElementById("p"); op.ondragstart = (ev) => { ev.dataTransfer.setData("Text",ev.target.id); let itemList = ev.dataTransfer.items; console.log(itemList.length); itemList.add("http://www.softwhy.com","text/uri-list"); console.log(itemList.length); } odiv.ondragover = (ev) => { ev.preventDefault(); } odiv.ondrop = (ev) => { ev.preventDefault(); ev.stopPropagation(); let data=ev.dataTransfer.getData("Text"); ev.target.appendChild(document.getElementById(data)); } } </script> </head> <body> <p draggable="true" id="p"></p> <div id="box"></div> </body> </html>
拖拽頂部紅色矩形,然後檢視谷歌控制檯列印效果:
第二個列印數字為2,說明新增成功。
新增成功後,此方法返回新增的DataTransferItem型別物件。
特別說明:如果新增資料的MIME型別已經存在,則報錯。
新增file型別資料操作操作相同,只不過無需使用第二個引數。
關於file型別物件可以參閱JavaScript File 物件一章節。