首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Microsoft中是否有与window.clipboardData相当的内容?

Microsoft中是否有与window.clipboardData相当的内容?
EN

Stack Overflow用户
提问于 2018-11-12 23:05:16
回答 2查看 6.1K关注 0票数 3

在我们的应用程序中,我们有一个定制的粘贴函数,它调用window.clipboardData.getData("Text")来获取当前的剪贴板数据。然后,它对这些数据执行一些功能。在边缘中,window.clipboardData未定义。在“粘贴”事件中使用getData似乎是有效的,但如下所示。

代码语言:javascript
复制
document.addEventListener("paste", function(e) {
    var test = e.clipboardData.getData("text/plain");
});

我可能会设计一个解决方案,这将涉及这个覆盖粘贴事件,但这将是不理想的。一个可以在事件之外调用的解决方案会更好。

顺便提一下,我读到Edge在某一时刻不支持剪贴板API,但我的理解是这是固定的,所以请找到一些特定的东西来支持当前的功能(如果这是您的答案,e.clipboardData可以工作,但不等同于window.clipboardData。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-12 23:51:30

Edge,像所有现代浏览器一样使用正式的剪贴板事件::clipboardData

代码语言:javascript
复制
inp.onpaste = evt =>
  console.log(evt.clipboardData.getData('text'));
代码语言:javascript
复制
<input id="inp">

随它去吧。对于旧版本的IE,不推荐的和非标准的窗口::clipboardData只应用作遗留支持的手段。

至于您希望做什么(粘贴没有用户交互),这与隐私规范建议背道而驰。你将无法从网络内容。您需要从高权限脚本(如扩展名)运行脚本。

·实现不能让脚本创建合成剪贴板事件来访问真正的剪贴板数据(除非用户已经将其配置为这样做)。

票数 4
EN

Stack Overflow用户

发布于 2018-11-14 14:29:37

正如凯伊多所指出的,不可能在边缘粘贴事件之外获取粘贴内容(而Chrome则是这样)。

用户以前使用自定义的右键菜单访问“从Excel中粘贴”功能,用剪贴板中以标签分隔的内容替换可编辑网格中的内容。如果window.clipboardData是未定义的,则用户收到一条消息,表示必须在此浏览器中使用标准的CTRL+V粘贴。

然后,我在下面添加了监听器,它本质上决定了内容是否为制表符分隔,并将其视为“从Excel粘贴”,而将其他数据布局视为标准的“粘贴”。对于我的部署来说,这已经足够了,但对于其他人来说,启动一个确认窗口来验证意图可能是值得的。

代码语言:javascript
复制
document.getElementById(myGridID).addEventListener("paste", function(e) {
    var clipboardContent = window.clipboardData ? window.clipboardData.getData("Text") : (e.clipboardData ? e.clipboardData.getData("text/plain") : "");
    if(clipboardContent != null && clipboardContent.indexOf('\t') >= 0)
    {
        MyExcelPasteFunction(myGridID, clipboardContent);
        e.preventDefault();
    }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53271387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档