【问题标题】:Ace Editor - Custom keybind for pasteAce Editor - 用于粘贴的自定义键绑定
【发布时间】:2015-04-16 16:54:46
【问题描述】:

Ace 中的粘贴功能目前通过事件处理。有没有办法为粘贴事件添加自定义键绑定?我尝试了以下方法,但没有这样的运气(请参阅here):

editor.commands.addCommand({
  name: "customPaste",
  bindKey: {win: "Ctrl-q", mac: "Command-q"},
  exec: function(editor) { 
    console.log("customPaste");
    editor.session._emit('paste');
  }
});

键绑定被识别(如控制台输出所示),但它似乎没有触发粘贴事件。

【问题讨论】:

  • 你不能通过 JS 粘贴,否则任何网站都可以窥探你的剪贴板,就像他们曾经在 IE6 中一样......
  • @dandavis 那么 Ace 如何从剪贴板执行粘贴操作?
  • 我不熟悉,什么时候粘贴?如果答案是“当你按下 [ctrl]+[v]”,那么是操作系统在进行粘贴,而不是 ACE……触发事件是粘贴的症状,而不是原因。
  • 现在我仔细观察,我不相信 ace 正在执行粘贴,而是捕获粘贴事件并执行操作 (ace.c9.io/api/editor.html#Editor.onPaste)。我只想添加一个键绑定来触发编辑器上的粘贴事件(即用户按下 Ctrl-q,它的行为就像用户按下 Ctrl-v)
  • 我确切地知道你想做什么,但我很遗憾地说这是不可能的,至少使用浏览器 javascript...

标签: javascript ace-editor


【解决方案1】:

使用普通的 javascript 无法做到这一点。 在 chrome 上,您可以使用扩展程序将您的网站列入白名单,然后调用 document.execCommand("paste", null, null)

cloud9 的做法如下:extensionexecCommand

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 2020-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    相关资源
    最近更新 更多