2017-10-20 113 views
1

在Firefox中,当按住shift键时不会发生“粘贴”事件。我确实在Chrome中收到了此事件。按住shift键时如何获得“粘贴”事件?当Firefox中的Shift键关闭时没有粘贴事件

See this jsbin example 这是我使用捕捉粘贴事件是什么:

['cut', 'copy', 'paste'].forEach(function(event) { 
    document.addEventListener(event, function(e) { 
    alert(event); 
    }); 
}); 

编辑的一些背景: 粘贴用Shift键(Ctrl + Shift + V或CMD + SHIFT + V )是一种常见的“无格式粘贴”命令。在Google文档中,此命令可在Firefox中使用。我假设Google文档正在侦听“粘贴”事件,因为这是在Firefox中检索剪贴板数据的唯一方法。 Google文档如何检索“粘贴”事件?

是否可以在执行“无格式粘贴”键盘命令时获取剪贴板数据?

回答

1

在我看来Firefox有正确的行为,因为按Ctrl + V不同键盘快捷键比按Ctrl + + V(如果已经使用键盘的工作,这是更明显桌面应用程序中的快捷方式)。我尝试了MS Edge中的示例,它具有与Firefox相同的行为。

按Ctrl ++V作品在Chrome中,因为没有什么阻止应用程序使用也这种或者其他的附加快捷方式粘贴。例如在Windows记事本中按下它粘贴文本,但在Notepad ++中插入特殊字符SYN(不管它的意思)。

我试过用文字(集成开发环境,文本编辑器...)工作,几乎都不理按Ctrl ++V粘贴,包括Microsoft Word和Excel几个方案,但编辑和组合框基于Windows standard edit control似乎接受它默认情况下粘贴文本。也许这就是您认为快捷方式的“移位”版本始终用于粘贴的原因(也许这就是为什么Chrome会接受该粘贴快捷方式的原因)。

+1

Firefox的99%的时间正确。它是一个真正的浏览器,而不是像Chrome一样的破解 – vsync

+0

我认为这两种浏览器都反映了他们背后的人们:Firefox来自开源社区和热心程序员,Chrome来自一个大型跨国公司。第一种方法的目标是为人们制作浏览器,并以牺牲其他方面为代价来支持正确的行为(有时令非技术人员感到困惑,尽管这种情况正在改变)。其次,他们的目标是在他们将人们从“微软桌面”转移到“谷歌网络”的总体规划中尽可能快地取代IE(取得巨大成功),因此他们最好采用实用的方法来处理正确性。 –

0

这可能是故意的。在上下文菜单转换的情况下,右键点击绕过javascript,这样用户即使在常规右键单击javascript修改或阻止时仍然可以使用标准上下文菜单。