Baseline Widely available
DataTransfer.clearData()
æ¹æ³å é¤ç»å®ç±»åçæå¨æä½ç drag data
ã妿ç»å®ç±»åçæ°æ®ä¸åå¨ï¼åæ¤æ¹æ³ä¸æ§è¡ä»»ä½æä½ã
妿è°ç¨æ¤æ¹æ³æ¶æ²¡æä¼ å
¥åæ°ï¼æè
åæ°ä¸ºç©ºå符串
ï¼åå°å 餿æç±»åçæ°æ®ã
æ¤æ¹æ³ä¸ä¼ä»æå¨æä½ä¸å 餿件ï¼å æ¤å¦ææä»»ä½æä»¶å
å«å¨å¯¹è±¡ç DataTransfer.types
å表ä¸ï¼ä»ç¶å¯è½æä¸ä¸ªç±»å为âFilesâçæ¡ç®å¨æå¨ã
夿³¨ï¼ è¯¥æ¹æ³åªè½å¨ dragstart
äºä»¶çå¤çç¨åºä¸ä½¿ç¨ï¼å ä¸ºè¿æ¯æå¨æä½çæ°æ®åå¨å¯ä¸è½åå
¥çæ¶é´ã
DataTransfer.clearData([format]);
åæ°
format
å¯é
ä¸ä¸ª string
æå®è¦å é¤çæ°æ®ç±»åã妿æ¤åæ°ä¸ºç©ºåç¬¦ä¸²ææªæä¾ï¼åå°å 餿æç±»åçæ°æ®ã
è¿ä¸ªä¾åæ¾ç¤ºäºä½¿ç¨ DataTransfer
对象ç getData()
ãsetData()
以å clearData()
æ¹æ³ã
<span class="tweaked" id="source" draggable="true">
Select this element, drag it to the Drop Zone and then release the selection
to move the element.
</span>
<span class="tweaked" id="target">Drop Zone</span>
<div>Status: <span id="status">Drag to start</span></div>
<div>Data is: <span id="data">uninitialized</span></div>
CSS
span.tweaked {
display: inline-block;
margin: 1em 0;
padding: 1em 2em;
}
#source {
color: blue;
border: 1px solid black;
}
#target {
border: 1px solid black;
}
JavaScript
window.addEventListener("DOMContentLoaded", function () {
// Select HTML elements
var draggable = document.getElementById("source");
var dropable = document.getElementById("target");
var status = document.getElementById("status");
var data = document.getElementById("data");
var dropped = false;
// Register event handlers
draggable.addEventListener("dragstart", dragStartHandler);
draggable.addEventListener("dragend", dragEndHandler);
dropable.addEventListener("dragover", dragOverHandler);
dropable.addEventListener("dragleave", dragLeaveHandler);
dropable.addEventListener("drop", dropHandler);
function dragStartHandler(event) {
status.textContent = "Drag in process";
// Change target element's border to signify drag has started
event.currentTarget.style.border = "1px dashed blue";
// Start by clearing existing clipboards; this will affect all types since we
// don't give a specific type.
event.dataTransfer.clearData();
// Set the drag's format and data (use event target's id for data)
event.dataTransfer.setData("text/plain", event.target.id);
data.textContent = event.dataTransfer.getData("text/plain");
}
function dragEndHandler(event) {
if (!dropped) {
status.textContent = "Drag canceled";
}
data.textContent = event.dataTransfer.getData("text/plain") || "empty";
// Change border to signify drag is no longer in process
event.currentTarget.style.border = "1px solid black";
if (dropped) {
// Remove all event listeners
draggable.removeEventListener("dragstart", dragStartHandler);
draggable.removeEventListener("dragend", dragEndHandler);
dropable.removeEventListener("dragover", dragOverHandler);
dropable.removeEventListener("dragleave", dragLeaveHandler);
dropable.removeEventListener("drop", dropHandler);
}
}
function dragOverHandler(event) {
status.textContent = "Drop available";
event.preventDefault();
}
function dragLeaveHandler(event) {
status.textContent = "Drag in process (drop was available)";
event.preventDefault();
}
function dropHandler(event) {
dropped = true;
status.textContent = "Drop done";
event.preventDefault();
// Get data linked to event format « text »
var _data = event.dataTransfer.getData("text/plain");
var element = document.getElementById(_data);
// Append drag source element to event's target element
event.target.appendChild(element);
// Change CSS styles and displayed text
element.style.cssText =
"border: 1px solid black;display: block; color: red";
element.textContent = "I'm in the Drop Zone!";
}
});
è§è æµè§å¨å
¼å®¹æ§ åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4