首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xtermjs无法复制和粘贴

Xtermjs无法复制和粘贴
EN

Stack Overflow用户
提问于 2019-11-20 15:23:44
回答 1查看 2K关注 0票数 2

我无法从xterm.js API实现复制和粘贴功能。我希望终端能够从剪贴板复制字符串。

我正在使用

代码语言:javascript
复制
  this.term.onKey((key) => {
    if (key.domEvent.code === 'KeyC'){
     if (key.domEvent.ctrlKey) {
     this.copiedText = this.term.getSelection();
    }
   } else if (key.domEvent.code === 'KeyV'){
     if (key.domEvent.ctrlKey) {
     this.term.write(this.copiedText);
    } 
   }
  }

但它只能在终端中获得复制的文本,并且键事件无法检测MAC上的命令键(现在我使用ctl +c& ctl + v)

如果我使用onData(),当我按下command +V时就会触发事件,并且我可以看到它在终端之外输出字符串

代码语言:javascript
复制
  this.term.onData((data) => {
    console.log(data.toString());  // prints "strings I copied with command + c"
  });

但是"data“只是一个字符串,事件也是由按键触发的,所以term.onData将与onKey()事件冲突,而且我不确定如何为"data”设置条件,因为它不是一个对象。

EN

回答 1

Stack Overflow用户

发布于 2019-11-23 01:38:05

您可以使用ctrl/cmd+c/v的Terminal.attachCustomKeyEventHandler来拦截按键,并防止终端对其进行评估。

在该处理程序中,您可以处理按键操作,并使用相关的web来复制和粘贴文本(document.execCommand或最好是navigator.clipboard)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58948835

复制
相关文章

相似问题

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