DataTransfer: types ããããã£
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.types ã¯èªã¿åãå°ç¨ããããã£ã§ã items ã«åå¨ããå©ç¨å¯è½ãªåãè¿ãã¾ãã
å¤
ãã©ãã°æä½ã§ä½¿ç¨ããããã¼ã¿å½¢å¼ã®é
åã
ããããã®å½¢å¼ã¯æååã§ãããä¸è¬çã«ã¯ text/plain ã text/html ãªã©ã® MIME ã¿ã¤ãã§ãã
ãã©ãã°æä½ã«ãã¼ã¿ãå«ã¾ãã¦ããªãå ´åããã®ãªã¹ãã¯ç©ºã«ãªãã¾ãã
ãã©ãã°æä½ã«ãã¡ã¤ã«ãå«ã¾ãã¦ããå ´åã¯ããã®åã® 1 ã¤ãæåå Files ã«ãªãã¾ãã
ä¾
ãã®ä¾ã§ã¯ãtypes 㨠items ããããã£ã使ç¨ãã¦ãã¾ãã
<ul>
<li id="i1" draggable="true">ã¢ã¤ãã 1 ãããããã¾ã¼ã³ã«ãã©ãã°</li>
<li id="i2" draggable="true">ã¢ã¤ãã 2 ãããããã¾ã¼ã³ã«ãã©ãã°</li>
</ul>
<div id="target">ããããã¾ã¼ã³</div>
<pre id="output"></pre>
div {
margin: 0em;
padding: 2em;
}
#target {
border: 1px solid black;
}
const output = document.getElementById("output");
function log(msg) {
output.textContent += `${msg}\n`;
}
document.querySelectorAll("li").forEach((item) => {
item.addEventListener("dragstart", dragstartHandler);
});
function dragstartHandler(ev) {
log(`dragStart: target.id = ${ev.target.id}`);
// ãã©ãã°å
容ã«ãã®è¦ç´ ã® ID ã追å ãããããããã³ãã©ã¼ãã©ã®è¦ç´ ã
// ããªã¼ã«è¿½å ããã°ããããç¥ããã¨ãã§ããããã«ãã
ev.dataTransfer.setData("text/plain", ev.target.id);
ev.dataTransfer.effectAllowed = "move";
}
const target = document.getElementById("target");
target.addEventListener("drop", (ev) => {
log(`drop: target.id = ${ev.target.id}`);
ev.preventDefault();
// ã¿ã¼ã²ããã® ID ãåå¾ããç§»åããè¦ç´ ãã¿ã¼ã²ããã® DOM ã«è¿½å ãã¾ãã
const data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
// ããããã®å½¢å¼ã表示
for (let i = 0; i < ev.dataTransfer.types.length; i++) {
log(`⦠types[${i}] = ${ev.dataTransfer.types[i]}`);
}
// ããããã®é
ç®ã® "kind" 㨠"type" ã表示ãã
for (let i = 0; i < ev.dataTransfer.items.length; i++) {
log(
`⦠items[${i}].kind = ${ev.dataTransfer.items[i].kind}; type = ${ev.dataTransfer.items[i].type}`,
);
}
});
target.addEventListener("dragover", (ev) => {
ev.preventDefault();
ev.dataTransfer.dropEffect = "move";
});
仿§æ¸
| Specification |
|---|
| HTML > # dom-datatransfer-types-dev > |