javascript - 如何在 xterm.js 中创建链接

标签 javascript xtermjs

我正在使用 xterm.js 编写一个报告工具,在 xterm.js 终端上显示结果。我希望将其中一些测试结果写入终端作为链接,按下这些链接后我可以触发某种 JavaScript 函数来处理下一步。我正在查看文档,发现一个名为 ILink 的接口(interface),据说它可以实现我正在寻找的功能,但我不知道如何使用它。 xterm.js 可以做这样的事情吗?

最佳答案

xterm.js#4005起支持OSC 8超链接

基于readme.md#addons

使用 xterm-addon-web-links

import { Terminal } from 'xterm';
import { WebLinksAddon } from 'xterm-addon-web-links';

const terminal = new Terminal();
term.open(document.getElementById('terminal'));

// clickable links
// default handler: open the link
terminal.loadAddon(new WebLinksAddon());
// custom handler
/*
function onLinkClick(_event, url) {
  console.log(`clicked link: ${url}`);
}
terminal.loadAddon(new WebLinksAddon(onLinkClick));
*/

// simple link
terminal.writeln('click here: https://xtermjs.org/');

// OSC 8 hyperlink escape codes
// not working in xterm.js?
terminal.writeln('click here: \x1b]8;;https://xtermjs.org\x07OSC 8 hyperlink text\x1b]8;;\x07');

替代方案:xterm-link-provider

import { Terminal } from 'xterm';
import { LinkProvider } from 'xterm-link-provider';

const terminal = new Terminal();
term.open(document.getElementById('terminal'));

const linkRegex = /(CLICKME)/gu
terminal.registerLinkProvider(
  new LinkProvider(
    terminal,
    linkRegex,
    (_event, text) => {
      console.log(text)
    }
  )
)

terminal.writeln('click here: CLICKME');

关于javascript - 如何在 xterm.js 中创建链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64759060/

相关文章:

xtermjs - 如何在 xterm.js 中使用响铃字符(BEL、CTRL-G、\x07)?

javascript - xterm.js - 获取当前行文本

javascript - 有福服务器(Node.js)通过 websocket 到浏览器中的 Xterm.js 客户端

javascript - 在javascript中选择一行后如何取消选择其他行?

javascript - ionic 3 - 在操作表中实现日期选择器

javascript - 无法在 Cheerio 中显示选择器内容

javascript - nodejs脏检查键是否存在

java - 在不同线程中启动的 ServerSocket 导致 JavaFX 应用程序卡住

xtermjs - 如何解决 Chrome 上的 'AttachAddon is not a constructor' 错误?

javascript - 无法检索 span 元素内的文本