- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我最初的目标是从剪贴板中粘贴一张图片。但是我在获取粘贴事件时遇到了麻烦。
在我重现问题的 JSFiddle 中,HTML 仅包含一个 div:
<div style="width: 200px; height: 200px; background: grey" id="pasteTarget" > </div>
JavaScript 首先将我的函数 handlePaste() 绑定(bind)到粘贴事件。
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/
最佳答案
据我所知,您将不得不针对每个浏览器代理单独处理粘贴。Joshua Gross 在这篇文章中介绍了粘贴事件的许多复杂之处:Paste Wasteland
Firefox 喜欢更迟钝,但可以通过将剪贴板数据视为 Blob 来将图像数据作为文件读取。 (见格罗斯文章后记)这是浏览器中几乎未处理的遗留代码,以略有不同的方式处理操作系统事件,并简洁地总结了为什么我们在 WebAPI 等方面拥有标准化的大多数新功能。我希望这会有所帮助。
关于JavaScript 粘贴事件在 Chrome 中运行良好,但在 Firefox 中运行不正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26096920/
嗨,我正在考虑开发一种文件传输程序,想知道我是否想要尽可能好的加密,我应该使用什么? 我会用 C# 开发它,所以我可以访问 .net 库 :P在我的 usb 上有一个证书来访问服务器是没有问题的,如果
我创建的这个计算两个数组的交集是线性的方法的复杂度(在良好、平均、最差的情况下)? O(n) public void getInt(int[] a,int[] b){ int i=0; int
我已经能够使用 RTCPeerConnection.getStats() API 获得 WebRTC 音频调用的各种统计信息(抖动、RTT、丢包等)。 我需要将整体通话质量评为优秀、良好、一般或差。
基本问题: 如果我正在讲述/修改数据,我应该通过索引硬编码索引访问文件的元素,即 targetFile.getElement(5);通过硬编码标识符(内部翻译成索引),即 target.getElem
在 Linux 上,我想知道要调用什么“C”API 来获取每个 CPU 的统计信息。 我知道并且可以从我的应用程序中读取 /proc/loadavg,但这是系统范围的负载平均值,而不是每个 CPU 的
在客户端浏览器中使用 fetch api,GET 或 POST 没有问题,但 fetch 和 DELETE 有问题。它似乎将 DELETE 请求方法更改为 OPTIONS。 大多数研究表明是一个cor
我是一名优秀的程序员,十分优秀!