【问题标题】:No paste event when shift key is down in Firefox在 Firefox 中按下 shift 键时没有粘贴事件
【发布时间】:2017-10-23 20:27:08
【问题描述】:

在 Firefox 中,当按住 shift 键时,我没有收到“粘贴”事件。我确实在 Chrome 中收到了这个事件。按住 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 Docs 中,此命令适用于 Firefox。我假设 Google Docs 正在监听“粘贴”事件,因为这是在 Firefox 中检索剪贴板数据的唯一方法。 Google Docs 如何检索“粘贴”事件?

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

【问题讨论】:

    标签: javascript html firefox paste


    【解决方案1】:

    在我看来,Firefox 的行为是正确的,因为 Ctrl+VCtrl 不同的键盘快捷键+Shift+V(如果您在桌面应用程序中使用过键盘快捷方式,这一点会更加明显)。我在 MS Edge 中尝试了该示例,它的行为与 Firefox 相同。

    Ctrl+Shift+V 在 Chrome 中有效,因为没有什么能阻止应用程序同时使用此或其他附加快捷方式进行粘贴。例如,在 Windows 记事本中按下它会粘贴文本,但在 Notepad++ 中会插入特殊字符 SYN(无论它是什么意思)。

    我尝试了几个处理文本的程序(IDE、文本编辑器...),几乎都忽略了 Ctrl+Shift+V用于粘贴,包括 Microsoft Word 和 Excel,尽管基于 Windows standard edit control 的编辑框和组合框似乎默认接受它来粘贴文本。也许这就是让您认为快捷方式的“移位”版本总是用于粘贴的原因(也许这就是 Chrome 接受该快捷方式进行粘贴的原因)。

    【讨论】:

    • Firefox 99% 的时间都是正确的。它是一个真正的浏览器,而不是像 Chrome 那样的 hack
    • 我认为这两种浏览器都反映了它们背后的人:Firefox 来自开源社区和热情的程序员,而 Chrome 来自大型跨国公司。第一个的目标是为人们制作浏览器,并以牺牲其他东西为代价来支持正确的行为(有时会使非技术人员感到困惑,尽管这种情况正在改变)。第二个的目标是在他们将人们从“微软桌面”转移到“谷歌网络”的总体计划中尽快(取得巨大成功)取代 IE,因此他们充其量只是一种关于正确性的务实方法。
    【解决方案2】:

    这可能是故意的。在上下文菜单的情况下,shift+rightclick 会绕过 javascript,因此即使 javascript 在常规右键单击时修改或阻止它,用户仍然可以使用标准上下文菜单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-10
      • 2010-12-06
      • 2013-08-21
      相关资源
      最近更新 更多