Files
atakanozbancom/web_atakanozbancom/assets/js/paste-upload.js
T

38 lines
1.4 KiB
JavaScript

function enablePasteUpload(inputSelector, previewSelector) {
var input = document.querySelector(inputSelector);
if (!input) return;
document.addEventListener('paste', function (e) {
var clipboard = e.clipboardData || window.clipboardData;
var items = clipboard ? clipboard.items : null;
if (!items) return;
for (var i = 0; i < items.length; i++) {
var item = items[i];
if (item.kind === 'file' && item.type.indexOf('image/') === 0) {
var blob = item.getAsFile();
if (!blob) continue;
var ext = (blob.type.split('/')[1] || 'png').toLowerCase();
var pastedFile = new File([blob], 'pasted-image-' + Date.now() + '.' + ext, { type: blob.type });
var dt = new DataTransfer();
dt.items.add(pastedFile);
input.files = dt.files;
input.dispatchEvent(new Event('change', { bubbles: true }));
if (previewSelector) {
var preview = document.querySelector(previewSelector);
if (preview) {
preview.src = URL.createObjectURL(pastedFile);
preview.style.display = '';
}
}
e.preventDefault();
break;
}
}
});
}