问题标签 [xtermjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何将 xterm.js 与 Meteor 一起使用
我正在尝试在我的 Meteor 应用程序中使用xterm.js,但我无法让它工作,因为我得到了Terminal is not defined
.
我在客户的 main.html 中使用这样的 xterm:
有人已经将 xterm.js 与 Meteor 一起使用并且可以让我走上正轨吗?
javascript - xterm.js 使用相同的密码重新连接
我在我的 web 项目中使用xterm.js在网页上有一个终端。每次我刷新页面或重新连接套接字时,由于客户端的互联网波动而导致套接字连接中断。当前的 PWD 目录丢失,它落入指定的 CWD 目录,在我的例子中是用户主目录。所以我必须再次在我工作的地方做 cd 。
如何在页面刷新或套接字断开之前连接并保持上次的 PWD?
我尝试的一件事是存储术语对象并在重新连接时通过相同的对象进行连接(如果它已经存在)。在 WebSocket 断开连接时不删除进程和对象。
这对我不起作用。这让我只第一次连接,但是当我刷新我的页面终端时,它没有与现有的商店对象连接。
此外,如果生成的进程被系统杀死但它仍然保留在 javascript 对象中并且脚本尝试与相同的术语对象重新连接,则会出现问题,它将失败。
如何实现与相同 PWD 重新连接的任何指南。
细节
操作系统版本:Mac OS,xterm.js 版本:2.2.3
javascript - 如何让 xterm.js 接受输入?
我正在将 xterm.js 用于一个项目,但我无法让它接受输入。每当我尝试在终端中输入时,什么都没有发生,也没有说明如何完成此操作的文档或示例。
这就是我所拥有的:
javascript - 如何让 Node REPL 只打印结果?
我想运行一个脚本,.load myFile.js
但我不想打印文件中的所有内容,只打印文件的值/结果。我在我的项目中使用 Electron、xterm.js 和 node-pty。
例如,使用以下代码:
我得到这样的东西:
javascript - 如何不使用 node-pty 和 xterm 在终端中打印命令?
我正在使用 xterm.js、node-pty 和 electron 来构建一个类似终端的节点 repl(类似于 repl.it)。我正在使用这段代码来运行文件并将其输出到终端:
ptyProcess.write("vm.runInNewContext(fs.readFileSync('dir/file.js', 'utf8'))\r")
但我总是把它打印到终端:
我知道ptyProcess.write()
写入终端,但是有没有办法在不将命令打印到终端的情况下运行命令?我怎样才能让终端打印这样的东西:
node.js - 重新连接后 Xterm js + pty + websocket 奇怪的字符
我正在写一个网络终端来玩。我正在使用 xterm js + pty。我有一个 linux 服务器,客户端使用 websocket 连接到它。websocket 将向服务器发送消息,该消息将发送到由 pty 生成的终端。任何输出都将通过 websocket 发送回 xterm 中的客户端。一切正常。
但是在不稳定的网络中,我想在断开连接后重新连接websocket。这是我的处理方式。
在大多数情况下它也可以正常工作。但是,一旦我使用“vi”或“vim”,任何后续的重新连接都会导致最后出现一些奇怪的字符。
我用谷歌搜索了很多,但没有找到太多。我唯一发现的是here,它看起来像是来自termcap 的一堆错误响应。
跟进: 我发现问题实际上来自客户端的 xterm js。这是我所做的:
我将 console.log 添加到 xterm js attach 插件,以查看是否是 xterm js 在重新连接后首先将这些字符发送到服务器。结果是“是的”。请参阅控制台日志。
打开vim后,我断开了互联网。此日志在重新连接后立即出现。如您所见,终端(xterm js Terminal 对象)首先使用这些字符发送到套接字,然后通过套接字从服务器接收到相同的内容。我搜索了 xterm js 的代码库,看起来这些字符是从https://github.com/sourcelair/xterm.js/blob/42724c7f42f827d9e247d461066eb1506725e371/src/Parser.ts#L526-L535生成的。
任何想法?
angular - Ionic 3 使用 JavaScript 库 xterm.js
我正在尝试将 xterm.js 库用于 Ionic 3 项目。
Github 有来源:https ://github.com/aircable/ionic-xterm和说明。它编译并启动,但没有正确显示,或者根本没有显示。布局不对。
其他问题是加载插件。其中一些尝试被注释掉了。
这是 home.ts 的摘录
linux - 如何使用 xterm.js 创建基于 Web 的终端以通过 ssh 连接到本地网络上的系统
我遇到了这个很棒的库xterm.js,它也是 Visual Studio Code 终端的基础。我有一个非常笼统的问题。
我想通过基于 Web 的终端(在网络外,可能在 aws 服务器上)访问本地网络上的机器(ssh 进入机器)。我能够在本地网络中成功地做到这一点,但我无法从 Internet-->local network 得出结论。
举个例子 -An aws server running the application on ip 54.123.11.98 which has a GUI with a button to open terminal. I want to open terminal of a local machine which is in a local network somewhere behind some public ip on local ip 192.168.1.7.
上面的例子可以使用某种解决方案来实现,我可以使用 xterm.js,这样我就不必去构建基于 Web 的终端了吗?以这种方式暴露终端时,我应该记住哪些主要的安全问题?
我正在考虑在 AWS 和本地网络 ip 之间使用固定的中间服务器并使用某种反向 ssh 隧道过程来执行此操作,但我不确定这是否是正确的方法或者是否有更简单/更好的方法为达到这个。
我知道数字海洋,谷歌云,他们都这样做,但是当我在本地网络中有一台机器时,他们必须连接到具有公共 IP 的计算机。我真的不想将路由器配置为进行任何类型的设置。
xtermjs - 在 xterm.js 中禁用触摸滚动
如何通过触摸 xterm.js 来禁用滚动?
我在 term.element 上有一个 touchmove 事件,它通过滑动适当的方向来模拟光标键。这在使用“备用屏幕缓冲区”的应用程序(例如 Midnight Commander)中非常有效,但在具有回滚功能的默认屏幕缓冲区(例如 lynx 或 bash)中,它除了滚动终端(如通常那样)之外发送箭头键的 ansi 代码。
我需要覆盖此行为,以便在您滑动时不会发生滚动,而不会阻止通过其他方式(例如鼠标滚轮或滚动条)滚动,或干扰其他鼠标事件(可能还有触摸事件)。
在事件上尝试了 preventDefault(),甚至尝试将其附加到终端、parentNode 及其 parentNode 中的各种元素。相同的行为。还尝试了 position: absolute 和 bottom: 0px,但是 xterm.js 模拟终端的方式会导致异常结果。
有任何想法吗?
web-applications - 可控制 i/o 的 Web 终端仿真器
我们正在考虑构建一个基于 Web 的 ssh 来为新手教授 linux。
但是,我们希望能够在后端终端执行之前读取输入,并在输出显示在浏览器之前读取输出,以便基于这些在 Web 应用程序中做出决策。
我查看了 xterm.js,但不知道如何使用任何当前基于 Web 的开源终端模拟器启用这种控制。
知道如何开始吗?