0

我正在尝试创建一个网页,用户将在其中按下一个按钮,它将在 div 中显示的一些代码发送到将要执行的终端,然后我希望该代码的实时输出显示在终端像我的页面上的窗口。

我已经研究了一些方法来做到这一点,但还没有真正找到任何允许这种类型用例的方法。

我看到了一种可以在网页上显示终端的方式,如此处所述使用 xterm.js 但似乎没有太多关于如何将其与实际终端链接以显示实时输出的文档。但是,我假设它是通过某种形式的网络套接字来捕获输出的。

我还看到了如何使用 node.js 中的 child_process.exec 向终端发送命令的方法,但我正在努力寻找将两者联系在一起的任何方法。

我不希望用户能够从页面上的终端窗口进行交互或运行代码,我只想在他们按下按钮时显示代码的输出。

有谁知道可以促进这种用例的任何技术?可能是 Python 中的东西,但我的网页目前使用 html 和 javascript。我知道仅使用客户端代码是不可能的,我需要一种服务器端语言,但最好是与 javascript 很好地集成的东西。

谢谢

4

2 回答 2

0

我已经设法使用 JavaScript、Bash 和 PHP 的混合创建了我自己的解决方案。我还创建了自己的终端窗口设计来显示返回的响应。

感谢您的帮助。

于 2021-02-11T19:28:44.230 回答
0

const btnTo = document.querySelector('#btnTo');
const btnFrom = document.querySelector('#btnFrom');
const term = document.querySelector('#term');

btnTo.addEventListener('click', grab, false);
btnFrom.addEventListener('click', update, false);
function grab (){
  const test = document.querySelector('.test');
  term.textContent =  test.outerHTML;
}
function update (){
  const test = document.querySelector('.test');
  test.outerHTML = term.textContent;
}
button {
 display: inline;
}
.test{
 font-size: .9rem;
}
.terminal {
  display: block;
  position: absolute;
  bottom: 0;
  color: white;
  background-color: black;
  height: 40vh;
  width: 95%;
}
<div class=test>
  <p>Hello World! You can edit it in terminal and even use sockets for backend editing</p>
</div>
<button id="btnTo">to terminal</button>
<button id="btnFrom">from terminal</button>
<pre id="term" class="terminal" contenteditable></pre>

你的意思是这样的吗?

于 2021-02-03T14:57:46.533 回答