浏览器中的Bash Shell模拟

用户名

有没有一种方法可以仅使用Javascript / JQuery在浏览器中模拟Bash shell?我想在我们的网站上有一个演示,它在Bash shell中使用我们的新数据库系统模拟某人。最好是看起来像有人在输入shell命令,并且输出将像典型的Bash shell一样逐行列出。我一直没有找到任何东西,所以我应该如何实现它-使用什么JQuery插件使我的工作更轻松。

用户名

我根据Kos示例提出了一个解决方案,您可以在此处看到完整的演示示例

的HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/q.js/1.0.0/q.js"></script>
<div id="wnd"></div>
<div id="log"></div>

<textarea rows="11" cols="50">
% cat example.c
#include <stdio.h>
int main()
{
  printf("Goodbye Cruel World!\n");
  return 0;
}
% make example.c -o example
% ./example
Goodbye Cruel World!
</textarea>

的CSS

body {
  background: black;
}
#wnd {
  background: #232;
  border-radius: .2em;
  white-space: pre-wrap;
  padding: .5em;
  font-family: "Consolas", "Ubuntu Mono", "Monaco", monospace;
  color: white;
}
.prompt {
  color: #99aaee;
}
.cmd {
  color: #9e9e9C;
}

jQuery查询

var prompt;

function setPrompt(usr, domain)
{
  prompt = usr + '@' + domain + ' %';
}

function addOutput(s) {
  $('<div>').text(s).appendTo(wnd);
  return Q.delay(100);
//  return addPrompt();
}

function addInput(s) {
  var l = $('.prompt:last');
var e = $('<span>').addClass('cmd').appendTo(l);

  return addLettersRecursive(e, s);
}

function addPrompt() {
  var l = $('<div>').text(prompt).addClass('prompt').appendTo(wnd);
  return Q.delay(900);
}

function addLettersRecursive(container, s) {
  container.append(s.charAt(0)); // dangerous :(
  var row_complete = Q.defer();
  Q.delay(100).then(function() {
    if (s.length <= 1) {
      row_complete.resolve();
    }
    addLettersRecursive(container, s.substr(1)).then(function() {
      row_complete.resolve();
    })
  });
  return row_complete.promise;
}

$( document ).ready(function() {
  $('textarea').hide();

  setPrompt('inge', 'sparkledb.net');

  var lines = $('textarea').val().split('\n');

  var promise = new Q();

  promise = promise.then(function() 
  {  
    lines.forEach( function(item) {
      if (item[0] == '%')
      {
        promise = promise.then(function() 
        { return addPrompt(); })
        promise = promise.then(function() 
        { return addInput(item.substr(1)); })
      }
      else
      {
        promise = promise.then(function() 
        { return addOutput(item); })
      }
    })
  })
  promise.done();

});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在浏览器中模拟Linux终端

来自分类Dev

在Android浏览器中模拟触摸事件的悬停行为

来自分类Dev

如何在浏览器中模拟Cookie域

来自分类Dev

在Android浏览器中模拟触摸事件的悬停行为

来自分类Dev

如何模拟Web浏览器中的dns故障?

来自分类Dev

如何在 JMeter 中模拟浏览器负载?

来自分类Dev

在 shell 中获取 302 但不在浏览器中

来自分类Dev

Cakephp在浏览器中运行cakephp shell以进行调试

来自分类Dev

php curl模拟浏览器?

来自分类Dev

谷歌浏览器移动模拟器隐藏下拉菜单中的选项

来自分类Dev

使用LiveReload在模拟器浏览器中测试PhoneGap应用

来自分类Dev

获取Ionic Framework以在iPhone / Android环境中显示内容(移动浏览器模拟器)

来自分类Dev

Shell脚本作为默认浏览器

来自分类Dev

从浏览器运行Shell命令

来自分类Dev

在Swing中模拟此SWT Shell

来自分类Dev

在 C 中模拟 shell 命令行

来自分类Dev

如何在浏览器中模拟设备宽度和方向以测试媒体查询?

来自分类Dev

如何在浏览器(最好是chrome)中模拟触摸手势?

来自分类Dev

Javascript / HTML移动浏览器模拟器

来自分类Dev

跨浏览器模拟器进行测试

来自分类Dev

PHP在浏览器中返回错误500,但在Shell中未返回

来自分类Dev

PHP在浏览器中返回错误500,但在Shell中未返回

来自分类Dev

在一台Visual Studio上同时在浏览器和模拟器中的Android应用中调试API

来自分类Dev

将shell脚本中的二进制文件导出到浏览器

来自分类Dev

Django在浏览器和Shell中带有send_mail的管道中断

来自分类Dev

PHP-浏览器中的shell_exec输出为空

来自分类Dev

使用PHP脚本执行linux shell命令并在浏览器中显示?

来自分类Dev

是否将Javascript Command Shell集成到Web浏览器中?

来自分类Dev

在浏览器和Shell中带有send_mail的Django损坏管道

Related 相关文章

  1. 1

    在浏览器中模拟Linux终端

  2. 2

    在Android浏览器中模拟触摸事件的悬停行为

  3. 3

    如何在浏览器中模拟Cookie域

  4. 4

    在Android浏览器中模拟触摸事件的悬停行为

  5. 5

    如何模拟Web浏览器中的dns故障?

  6. 6

    如何在 JMeter 中模拟浏览器负载?

  7. 7

    在 shell 中获取 302 但不在浏览器中

  8. 8

    Cakephp在浏览器中运行cakephp shell以进行调试

  9. 9

    php curl模拟浏览器?

  10. 10

    谷歌浏览器移动模拟器隐藏下拉菜单中的选项

  11. 11

    使用LiveReload在模拟器浏览器中测试PhoneGap应用

  12. 12

    获取Ionic Framework以在iPhone / Android环境中显示内容(移动浏览器模拟器)

  13. 13

    Shell脚本作为默认浏览器

  14. 14

    从浏览器运行Shell命令

  15. 15

    在Swing中模拟此SWT Shell

  16. 16

    在 C 中模拟 shell 命令行

  17. 17

    如何在浏览器中模拟设备宽度和方向以测试媒体查询?

  18. 18

    如何在浏览器(最好是chrome)中模拟触摸手势?

  19. 19

    Javascript / HTML移动浏览器模拟器

  20. 20

    跨浏览器模拟器进行测试

  21. 21

    PHP在浏览器中返回错误500,但在Shell中未返回

  22. 22

    PHP在浏览器中返回错误500,但在Shell中未返回

  23. 23

    在一台Visual Studio上同时在浏览器和模拟器中的Android应用中调试API

  24. 24

    将shell脚本中的二进制文件导出到浏览器

  25. 25

    Django在浏览器和Shell中带有send_mail的管道中断

  26. 26

    PHP-浏览器中的shell_exec输出为空

  27. 27

    使用PHP脚本执行linux shell命令并在浏览器中显示?

  28. 28

    是否将Javascript Command Shell集成到Web浏览器中?

  29. 29

    在浏览器和Shell中带有send_mail的Django损坏管道

热门标签

归档