单击按钮并发送命令以在 xterm.js 终端上执行
Click button and send command to execute on xterm.js terminal
我想单击一个按钮并发送 linux 命令,例如“ls”,以便在 xterm.js 终端上执行。有办法吗?
用Go编写的pty伪终端是远程运行,我使用xterm.js作为前端组件。
像这样的东西应该可以处理上面提到的情况
在HTML
<button (click)="runCmd('ls')>ls</button>
在app.component.ts
假设有一个 websocket 服务器正在监听这里提到的端点...
public runCmd(command){
var url = "ws://<ip>:<port>/pty"
var terminal = new Terminal()
terminal.open(document.getElementById("terminalDiv");
var socket = new WebSocket(url);
var attachAddon = new AttachAddon(socket);
terminal.loadAddon(attachAddon);
//socket.send() will send the data passed to it.
socket.send(command);
}
我对 Python 从应用程序发送命令到嵌入式 xterm.js 终端做了同样的事情,我推荐的一件事是设置它,这样你就可以发送原始命令而无需特殊转义需要。
我发现了这个 javscript“heredoc”函数,它允许我毫无问题地将原始复杂的多行单行代码发送到 xterm.js。把它留在这里以防其他人发现它有用。
@QtCore.pyqtSlot(QtCore.QModelIndex)
def run_command_via_js_double_click(self, signal):
# send a command to the server
script = """
var cmd = (function() {/*%s*/}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];
wssh.send(cmd);
""" % cmd_replaced
self.currentWidget().page().runJavaScript(script)
可以在下面看到一个实际的例子。
我想单击一个按钮并发送 linux 命令,例如“ls”,以便在 xterm.js 终端上执行。有办法吗?
用Go编写的pty伪终端是远程运行,我使用xterm.js作为前端组件。
像这样的东西应该可以处理上面提到的情况
在HTML
<button (click)="runCmd('ls')>ls</button>
在app.component.ts
假设有一个 websocket 服务器正在监听这里提到的端点...
public runCmd(command){
var url = "ws://<ip>:<port>/pty"
var terminal = new Terminal()
terminal.open(document.getElementById("terminalDiv");
var socket = new WebSocket(url);
var attachAddon = new AttachAddon(socket);
terminal.loadAddon(attachAddon);
//socket.send() will send the data passed to it.
socket.send(command);
}
我对 Python 从应用程序发送命令到嵌入式 xterm.js 终端做了同样的事情,我推荐的一件事是设置它,这样你就可以发送原始命令而无需特殊转义需要。
我发现了这个 javscript“heredoc”函数,它允许我毫无问题地将原始复杂的多行单行代码发送到 xterm.js。把它留在这里以防其他人发现它有用。
@QtCore.pyqtSlot(QtCore.QModelIndex)
def run_command_via_js_double_click(self, signal):
# send a command to the server
script = """
var cmd = (function() {/*%s*/}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];
wssh.send(cmd);
""" % cmd_replaced
self.currentWidget().page().runJavaScript(script)
可以在下面看到一个实际的例子。