Moim początkowym celem jest pobranie obrazu ze schowka. Ale mam problem ze zdobyciem zdarzenia wklejania.Zgłoszenie wklejania języka JavaScript działa poprawnie w przeglądarce Chrome, ale nie Firefox
W JSFiddle, gdzie reprodukowane problemu, HTML zawiera tylko Gr:
<div style="width: 200px; height: 200px; background: grey" id="pasteTarget" > </div>
Kod JavaScript pierwszy wiąże mojej funkcji handlePaste(), aby w przypadku pasty.
window.onload = function() {
//adding paste event listener on the div
document.getElementById("pasteTarget").
addEventListener("paste", handlePaste);
};
Ta funkcja powinna zostać wywołana, gdy użytkownik naciśnie Ctrl + V lub zaznaczy "wklej" w menu przeglądarki.
function handlePaste(e) {
alert("I'm in handlePaste");
for (var i = 0 ; i < e.clipboardData.items.length ; i++) {
var item = e.clipboardData.items[i];
console.log("Item: " + item.type);
alert(item.type);
}
}
Ważne: ta funkcja uzyskuje dostęp do pliku e.clipboardData w celu pobrania zawartości schowka. Na przykład, jeśli naciśniesz klawisz PrtScrn, a następnie Ctrl + V, wysyłasz obraz ekranu wydruku do metody handlePaste. Ostatni alert pokazuje "image/png", gdy działa poprawnie.
Chrome v37: JsFiddle działa poprawnie. Firefox v32: metoda handlePaste() nie jest wywoływana, pierwszy alert nie pojawia się.
szyfrowego jsFiddle: http://jsfiddle.net/demeylau/ke44bufm/1/
Wątpię, czy można wkleić cokolwiek do niewytłumaczalnego elementu – ovi
@ Ovi - czy będzie działać w Chrome, ponieważ jest to rodzaj błędu w Chrome? –