我最初的目標是從剪貼板上粘貼圖像。但是我遇到了粘貼事件的麻煩。JavaScript粘貼事件在Chrome瀏覽器中正常工作,但不是Firefox
在的jsfiddle,我在那裏再現了問題,HTML只包含一個div:
<div style="width: 200px; height: 200px; background: grey" id="pasteTarget" > </div>
中的JavaScript首先結合我的功能handlePaste()的糊狀事件。
window.onload = function() {
//adding paste event listener on the div
document.getElementById("pasteTarget").
addEventListener("paste", handlePaste);
};
當用戶按下Ctrl + V或在瀏覽器的菜單中選擇「粘貼」時,應該調用此函數。
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);
}
}
重要提示:該函數訪問e.clipboardData以獲取剪貼板的內容。例如,如果按下PrtScrn鍵,然後按Ctrl + V,則將打印屏幕圖像發送到handlePaste方法。 當它工作正常時,最後的警報顯示「image/png」。
Chrome v37:JsFiddle工作正常。 Firefox v32:不調用handlePaste()方法,第一個警報不會彈出。
的代碼的jsfiddle:http://jsfiddle.net/demeylau/ke44bufm/1/
我懷疑你可以將任何東西粘貼到不可編輯的元素 – ovi 2014-09-29 09:55:31
@Ovi - 它會在Chrome中工作,因爲Chrome中有一種錯誤? – 2014-09-29 14:17:52