DataTransfer: clearData() ã¡ã½ãã
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since â¨2015å¹´7æâ©.
DataTransfer.clearData() ã¡ã½ããã¯ããã©ãã°æä½ã®ãã©ãã°ãã¼ã¿ã®ä¸ã§æå®ãããåã®ãã®ãåé¤ãã¾ããæå®ãããåã®ãã¼ã¿ãåå¨ããªãå ´åããã®ã¡ã½ããã¯ä½ããã¾ããã
ãã®ã¡ã½ããã弿°ãªãã§å¼ã³åºãããå ´åãã¾ãã¯æ¸å¼ã空æååã§ãã£ãå ´åããã¹ã¦ã®åã®ãã¼ã¿ãåé¤ããã¾ãã
ãã®ã¡ã½ããã¯ãã©ãã°æä½ãããã¡ã¤ã«ãåé¤ããªãã®ã§ããã©ãã°ã«å«ã¾ãããã¡ã¤ã«ãããå ´åã "Files" åã®é
ç®ããªãã¸ã§ã¯ãã® DataTransfer.types ã®ä¸è¦§ã«æ®ãå¯è½æ§ãããã¾ãã
ã¡ã¢:
ãã®ã¡ã½ããã¯ã dragstart ã¤ãã³ãã®ãã³ãã©ã¼ã§ã®ã¿ä½¿ç¨ã§ãã¾ãããã©ãã°æä½ã®ãã¼ã¿ã¹ãã¢ãæ¸ãè¾¼ã¿å¯è½ãªã®ã¯ãã®æã ãã ããã§ãã
æ§æ
clearData()
clearData(format)
弿°
formatçç¥å¯-
åé¤ãããã¼ã¿ã®åãæå®ããæååããã®å¼æ°ãç©ºã®æååã§ãã£ãããæå®ããã¦ããªãå ´åã¯ããã¹ã¦ã®åã®ãã¼ã¿ãåé¤ããã¾ãã
è¿å¤
ãªã (undefined)ã
ä¾
ãã®ä¾ã§ã¯ã DataTransfer ãªãã¸ã§ã¯ãã® getData()ãsetData()ãclearData() ã¡ã½ããã使ç¨ãã¦ãã¾ãã
HTML
<span class="tweaked" id="source" draggable="true">
ãã®è¦ç´ ã鏿ããããããã¾ã¼ã³ã«ãã©ãã°ããå¾ã鏿ãè§£é¤ãã¦è¦ç´ ãç§»åãã¦ãã ããã
</span>
<span class="tweaked" id="target">ããããã¾ã¼ã³</span>
<div>ç¶æ
: <span id="status">ãã©ãã°ã§éå§</span></div>
<div>ãã¼ã¿: <span id="data">æªåæå</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
// HTML è¦ç´ ã鏿ãã
const draggable = document.getElementById("source");
const droppable = document.getElementById("target");
const status = document.getElementById("status");
const data = document.getElementById("data");
let dropped = false;
// ã¤ãã³ããã³ãã©ã¼ãç»é²ãã
draggable.addEventListener("dragstart", dragStartHandler);
draggable.addEventListener("dragend", dragEndHandler);
droppable.addEventListener("dragover", dragOverHandler);
droppable.addEventListener("dragleave", dragLeaveHandler);
droppable.addEventListener("drop", dropHandler);
function dragStartHandler(event) {
status.textContent = "ãã©ãã°ä¸";
// ãã©ãã°ãéå§ããããã¨ã示ãããã«ãã¿ã¼ã²ããè¦ç´ ã®å¢çç·ã夿´ãã
event.currentTarget.style.border = "1px dashed blue";
// æ¢åã®ã¯ãªãããã¼ããã¯ãªã¢ãããã¨ããå§ãã¾ãã
// ç¹å®ã®ã¿ã¤ããæå®ãã¦ããªãã®ã§ãããã¯ãã¹ã¦ã®ã¿ã¤ãã«å½±é¿ãã¾ãã
event.dataTransfer.clearData();
// ãã©ãã°ã®ãã©ã¼ãããã¨ãã¼ã¿ãè¨å®ããï¼ãã¼ã¿ã«ã¯ã¤ãã³ãã¿ã¼ã²ããã® id ã使ç¨ããï¼
event.dataTransfer.setData("text/plain", event.target.id);
data.textContent = event.dataTransfer.getData("text/plain");
}
function dragEndHandler(event) {
if (!dropped) {
status.textContent = "ãã©ãã°ã®ãã£ã³ã»ã«";
}
data.textContent = event.dataTransfer.getData("text/plain") || "empty";
// ãã©ãã°ä¸ã§ã¯ãªããã¨ã示ãããã«å¢çç·ã夿´ãã
event.currentTarget.style.border = "1px solid black";
if (dropped) {
// ãã¹ã¦ã®ã¤ãã³ããªã¹ãã¼ãåé¤
draggable.removeEventListener("dragstart", dragStartHandler);
draggable.removeEventListener("dragend", dragEndHandler);
droppable.removeEventListener("dragover", dragOverHandler);
droppable.removeEventListener("dragleave", dragLeaveHandler);
droppable.removeEventListener("drop", dropHandler);
}
}
function dragOverHandler(event) {
status.textContent = "ããããå¯è½";
event.preventDefault();
}
function dragLeaveHandler(event) {
status.textContent = "ãã©ãã°ä¸ï¼ããããã¯å¯è½ï¼";
event.preventDefault();
}
function dropHandler(event) {
dropped = true;
status.textContent = "ãããããã¾ããã";
event.preventDefault();
// ã¤ãã³ãå½¢å¼ã«é£åãããã¼ã¿ãåå¾ãã « text »
const _data = event.dataTransfer.getData("text/plain");
const element = document.getElementById(_data);
// ã¤ãã³ãã®ã¿ã¼ã²ããè¦ç´ ã«ãã©ãã°ã½ã¼ã¹è¦ç´ ã追å ãã
event.target.appendChild(element);
// CSS ã¹ã¿ã¤ã«ã¨è¡¨ç¤ºããã¹ãã夿´ãã
element.style.cssText = "border: 1px solid black;display: block; color: red";
element.textContent = "ããããã¾ã¼ã³ã«å
¥ãã¾ãã!";
}
仿§æ¸
| Specification |
|---|
| HTML > # dom-datatransfer-cleardata-dev > |