logs about gamedev
やっぱりCtrl+Vで画像を添付できないのは不便なのでそこだけ直したい。
in reply to this object
document.addEventListener("paste", async (event) => { const items = event.clipboardData.items; const fileInput = document.getElementById("files"); const dataTransfer = new DataTransfer(); let previews = document.getElementById("files-preview"); if (previews == null) { previews = document.createElement("div"); previews.id = "files-preview"; previews.style.display = "flex"; previews.style.flexWrap = "wrap"; previews.style.gap = "5px"; fileInput.parentNode.appendChild(previews); } for (const existingFile of fileInput.files) { dataTransfer.items.add(existingFile); } var added = false; for (const item of items) { if (item.type.startsWith("image/")) { const file = item.getAsFile(); if (!file) continue; added = true; dataTransfer.items.add(file); const preview = document.createElement("img"); preview.style.maxWidth = "200px"; preview.style.maxHeight = "200px"; preview.style.objectFit = "contain"; preview.style.margin = "2px"; const reader = new FileReader(); reader.onload = (e) => { preview.src = e.target.result; previews.appendChild(preview); }; reader.readAsDataURL(file); } } if (added) { fileInput.files = dataTransfer.files; } });
それっぽい感じでできた。
ついでにCtrl+Enterで投稿できるようにもした。