【发布时间】: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