javascript - Microsoft Edge 中是否有与 window.clipboardData 等效的内容?
问题描述
在我们的应用程序中,我们有一个自定义粘贴函数,它调用 window.clipboardData.getData("Text") 来获取当前剪贴板数据。然后它对这些数据执行一些功能。在 Edge 中,window.clipboardData 未定义。getData 在“粘贴”事件中使用时似乎确实有效,如下所示。
document.addEventListener("paste", function(e) {
var test = e.clipboardData.getData("text/plain");
});
我可能会设计一种解决方法,该解决方法将涉及覆盖粘贴事件,但这并不理想。可以在事件之外调用的解决方案将是更可取的。
顺便说一句,我读到 Edge 有一次不支持剪贴板 API,但我的理解是这是固定的,所以请找到特别支持当前功能的东西(e.clipboardData 工作但不等同于 window.clipboardData 存在 if这就是你的答案。
解决方案
Edge 和所有现代浏览器一样使用官方的ClipboardEvent::clipboardData:
inp.onpaste = evt =>
console.log(evt.clipboardData.getData('text'));
<input id="inp">
随它去吧。对于旧版本的 IE,已弃用且非标准的window::clipboardData应仅用作旧版支持的一种手段。
至于你想做什么,(粘贴没有用户交互),这违背了隐私的规范建议。您将无法通过网络内容进行操作。您需要从高权限脚本(如扩展程序)运行脚本。
• 实现不得让脚本创建合成剪贴板事件来访问真实剪贴板数据(除非用户已对其进行配置)。
推荐阅读
- python - 使用 pandas 将行附加到 CSV - 重复标题
- spring-boot - 如何将 spring-boot 应用程序战争部署到 Webspere?
- vue.js - 将 vue-formio 导入我的 vue 模板时出现类型错误
- java - 休眠同一对象的两个版本
- c - VSCode:禁用一小部分代码的代码格式化
- python - python不产生日志文件
- zend-framework - 提供给 Escape 助手的对象,但标志不允许在隐藏字段上递归
- excel - Excel VBA - 动态添加的 ActiveX 对象的 GotFocus/LostFocus 事件处理程序
- javascript - 函数和无状态组件之间的区别?
- vb.net - 提供显示名称时,发送电子邮件将转到垃圾邮件