首页 > 解决方案 > 窗口粘贴 Ctrl+V addEventListener 不在 IE 11 中触发但在 Chrome 中触发

问题描述

这是我在chrome浏览器中完美运行的代码

window.addEventListener("paste", pasteHandler); //chrome

问题出在IE11Ctrl+V浏览器中,当在剪贴板上从未触发select 时。

我试过这个没有成功

if (window.addEventListener) {
    alert("firefox, chrome, etc");
    window.addEventListener("paste", pasteHandler, false);
} else if (window.attachEvent) {
    alert("IE");
    window.attachEvent("paste", pasteHandler);
}   

这是为什么?

我的代码如下

var canvas = document.getElementById("cc");
var ctx = canvas.getContext("2d");

if (window.addEventListener) {
    alert("firefox, chrome, etc");
    window.addEventListener("paste", pasteHandler, false);
} else if (window.attachEvent) {
    alert("IE");
    window.attachEvent("paste", pasteHandler);
}   

function pasteHandler(e) {
    if (e.clipboardData == false) return false; //empty
    var items = e.clipboardData.items;
    if (items == undefined) return false;
    for (var i = 0; i < items.length; i++) {
        if (items[i].type.indexOf("image") == -1) continue; //not image
        var blob = items[i].getAsFile();
        var URLObj = window.URL || window.webkitURL;
        var source = URLObj.createObjectURL(blob);
        paste_createImage(source);
    }
}

编辑

这个链接失效了

标签: javascripttypescriptwindowclipboardaddeventlistener

解决方案


推荐阅读