【XGlassTerminal.js】快速 构建 炫酷 终端 网页 以及 Linux 模拟器 在线!!

XGlassTerminal.js

XGlassTerminal.js 是一个用于构建前端终端样式的 JavaScript 库。它允许开发者轻松地创建一个具有终端风格的用户界面,并对用户输入的命令进行事件处理。

该库提供了丰富的功能,包括文本添加、命令处理、点击事件绑定等。

同时还支持在终端中装载 Linux 终端模拟操作,如输入、Tab键、上下方向键等,其中内置了常用的 Linux 命令 以及 一些常用的 Linux 命令。

在这里插入图片描述

 __   _______ _            _______                  _             _   _     \ \ / / ____| |          |__   __|                (_)           | | (_)    \ V / |  __| | __ _ ___ ___| | ___ _ __ _ __ ___  _ _ __   __ _| |  _ ___ > <| | |_ | |/ _` / __/ __| |/ _ \ '__| '_ ` _ \| | '_ \ / _` | | | / __|/ . \ |__| | | (_| \__ \__ \ |  __/ |  | | | | | | | | | | (_| | |_| \__ \/_/ \_\_____|_|\__,_|___/___/_|\___|_|  |_| |_| |_|_|_| |_|\__,_|_(_) |___/_/ |    |__/     

主要功能

终端样式构建

  • 创建一个具有终端风格的 div 容器。
  • 支持自定义命令前缀(如 #$ 等)。

文本添加

  • 可以向终端添加文本,并支持自动换行。
  • 可以根据命令前缀处理特定的命令。

事件处理

  • 支持对用户输入的命令进行处理。
  • 可以绑定点击事件,使用户可以通过点击终端来聚焦输入框。

样式定制

  • 提供基本的 CSS 样式,可以根据需要进行自定义。

基本使用方法

在线体验

您可以在线体验 XGlassTerminal.js 的功能,点击这里
可以快速前往一个已经可以使用的终端界面,这样的方法更加适合于体验。

基本终端样式使用案例

在你的 HTML 文件中引入 XGlassTerminal.js 和相应的 CSS 文件。然后使用下面的代码:


<html lang="zh"><head><meta charset="utf-8"><title>测试代码</title><link rel="stylesheet" href="css/XGlassTerminal.css">
</head><body>
<div></div>
</body><script src="js/XGlassTerminal.js" type="text/javascript"></script>
<script>// 实例化终端const terminal = new XGlassTerminal(document.querySelector("div"), "#");// 初始化终端 这里可以给处理函数terminal.initEvent(function (x, text) {alert("输入了: " + text);});// 添加文本 也可以使用 appendXGlassTextXGlassTerminal.appendXGlassText(terminal, "Hello World!", (x, e) => alert("输入了 " + e));
</script>
</html>

自定义命令前缀

  // 实例化终端  并设置前缀为 #
const terminal = new XGlassTerminal(document.querySelector("div"), "#");
// 自定义前缀
terminal.commandPrefix = "root@xxx# ";

按键多监听

// 实例化终端 并设置前缀为 #
const terminal = new XGlassTerminal(document.querySelector("div"), "#");
// 自定义前缀 TODO 请确保这个函数在 initEvent 之前调用
terminal.commandPrefix = "root@xxx# ";
// 初始化终端 并对输入进行监听 TODO 参数统一是 当前的终端对象(为了防止在嵌套函数中无法访问设计的) 以及输入的命令
terminal.initEvent(// 第一个函数是监听回车后的命令(x, r) => XGlassTerminal.appendXGlassText(x, "您输入的是:" + r),// 第二个函数是监听Tab键后的命令(x, r) => x.input.value += ' 您按下了Tab键: 输入框的值为:' + r
);

linux 终端模拟操作

    // 实例化终端 并设置前缀为 #
const terminal = new XGlassTerminal(document.querySelector("div"), "#");
// 自定义前缀
terminal.commandPrefix = "root@xxx# ";
// 初始化终端 并对输入进行监听 TODO 参数统一是 当前的终端对象(为了防止在嵌套函数中无法访问设计的) 以及输入的命令
terminal.initEvent(// 第一个函数是监听回车后的命令(x, r) => XGlassLinuxCommand.GetLinuxCommandHandler(x, r),// 第二个函数是监听Tab键后的命令(x, r) => XGlassLinuxCommand.GetLinuxCommandHandlerTab(x, r),// 第三个是上方向按键XGlassLinuxCommand.GetLinuxCommandHandlerArrowUp
);

更新日志

2024-12-02

  • 优化了 Linux 终端的命令提示
  • 增多了 Linux 中的命令数量
  • 支持 Linux 命令的补全操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/61744.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

车辆传动系统的simulink建模与仿真,分析加速和刹车两个工况

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 车辆传动系统的simulink建模与仿真,分析加速和刹车两个工况。模型包括车辆模块&#xff0c;传动模块&#xff0c;发动机模块&#xff0c;换挡模块&#xff0c;刹车油门输入模块…

宝塔配置定时任务详解

文章目录 宝塔配置定时任务详解一、引言二、配置定时任务1、登录宝塔面板2、添加定时任务2.1、步骤 3、配置任务3.1、设置任务名称和执行周期3.2、设置执行命令 4、保存并测试 三、使用示例1、备份数据库2、清理日志文件 四、总结 宝塔配置定时任务详解 一、引言 在服务器管理…

【C++笔记】map和set的使用

【C笔记】map和set的深度剖析 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;C笔记 文章目录 【C笔记】map和set的深度剖析前言一.set1.1 序列式容器和关联式容器1.2 set系列的使用1.3 set类的介绍1.4 set的构造和迭代器1.5 set的增删查1.6…

springboot+mybatis对接使用postgresql中PostGIS地图坐标扩展类型字段

方案一&#xff08;完全集成和自动解析&#xff09;&#xff1a; <dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId></dependency> 使用 org.postgresql.geometric包下的 PGpoint 类来接收数据库中POINT…

《只狼》运行时提示“mfc140u.dll文件缺失”是什么原因?“找不到mfc140u.dll文件”要怎么解决?教你几招轻松搞定

《只狼》运行时提示“mfc140u.dll文件缺失”的科普与解决方案 作为一名软件开发从业者&#xff0c;在游戏开发和维护过程中&#xff0c;我们经常会遇到各种运行时错误和系统报错。今天&#xff0c;我们就来探讨一下《只狼》这款游戏在运行时提示“mfc140u.dll文件缺失”的原因…

华为HarmonyOS 让应用快速拥有账号能力 -- 3 获取用户手机号

场景介绍 当应用对获取的手机号时效性要求不高时&#xff0c;可使用Account Kit提供的手机号授权与快速验证能力&#xff0c;向用户发起手机号授权申请&#xff0c;经用户同意授权后&#xff0c;获取到手机号并为用户提供相应服务。以下只针对Account kit提供的手机号授权与快…

linux环境人大金仓数据库修改密码

1.进入人大金仓安装目录 cd /home/opt/Kingbase/ES/V9/Server/bin2.连接数据库 ./ksql -U system -d mydb -h 127.0.0.1 -p 54321-u 用户名 -d 数据库名 -h ip地址 -p 端口号 3.修改密码 ALTER USER system WITH PASSWORD 密码;

使用R语言进行美国失业率时空分析(包括绘图)

今天写一篇利用R语言&#xff0c;针对面板数据的简单分析与绘图。让我们直接开始把。 一、数据准备 这次的示例数据非常简单&#xff0c;只有一个shp格式的美国区县矢量数据&#xff0c;我们在QGIS中打开数据查看一下它的属性表。事实上我们需要的数据都在属性表的字段中。 二…

单片机几大时钟源

在单片机中&#xff0c;MSI、HSI和HSE通常指的是用于内部晶振配置的不同功能模块&#xff1a; MSI (Master Oscillator System Interface)&#xff1a;这是最低级的一种时钟源管理单元&#xff0c;它控制着最基本的系统时钟&#xff08;SYSCLK&#xff09;&#xff0c;一般由外…

前端开发 之 15个页面加载特效上【附完整源码】

文章目录 一&#xff1a;彩球环绕加载特效1.效果展示2.HTML完整代码 二&#xff1a;跷跷板加载特效1.效果展示2.HTML完整代码 三&#xff1a;两个圆形加载特效1.效果展示2.HTML完整代码 四&#xff1a;半环加载特效1.效果展示2.HTML完整代码 五&#xff1a;音乐波动加载特效1.效…

Spring入园须知

序 聊 Spring&#xff0c;先从发展历史谈起&#xff0c;对整个生态有个大致认识&#xff0c;最后再看下 Spring 依赖的基础机制——IoC 和 AOP&#xff0c;就达到入门须知的目的了。毕竟 Spring 太大了&#xff0c;如果把话题扯得太宽泛太细节&#xff0c;很可能会迷失在 Spri…

作品截图_

openstack project create --domain default --description "姓氏" xingopenstack user create --domain default --password-prompt --description "名字" mingziopenstack role create --description "姓名首字母" xmzopenstack role add --pr…

使用API管理Dynadot域名,设置默认域名服务器ip信息

前言 Dynadot是通过ICANN认证的域名注册商&#xff0c;自2002年成立以来&#xff0c;服务于全球108个国家和地区的客户&#xff0c;为数以万计的客户提供简洁&#xff0c;优惠&#xff0c;安全的域名注册以及管理服务。 Dynadot平台操作教程索引&#xff08;包括域名邮箱&…

聚合支付系统官方个人免签系统三方支付系统稳定安全高并发

系统采用fastadmin框架独立全新开发&#xff0c;安全稳定,系统支持代理、商户、码商等业务逻辑。 针对最近一-些JD&#xff0c;TB等业务定制&#xff0c;子账号业务逻辑API 非常详细&#xff0c;方便内置对接! 注意&#xff1a;系统没有配置文档很使用教程&#xff0c;不清楚…

vue结合canvas动态生成水印效果

在 Vue 项目中添加水印可以通过以下几种方式实现&#xff1a; 方法一&#xff1a;使用 CSS 直接通过 CSS 的 background 属性实现水印&#xff1a; 实现步骤 在需要添加水印的容器中设置背景。使用 rgba 设置透明度&#xff0c;并通过 background-repeat 和 background-size…

S32K324 信息安全开发-Secure Debug原理及其实现

文章目录 前言Secure debug原理LC(Life Cycle)Application debug key/password (ADKP)固定密钥的实现方案一机一密实现方案AUTH_MODE的区别代码实现ADKP写入确认认证方式写入LC总结前言 车载信息安全对于MCU的要求越来越高,debug口作为直接刷写调试程序的通道,对其进行保护是…

iptables之地址转换

1、自定义链 iptables -N hello #在filter表中创建一个自定义链&#xff0c;链名hello,自定义链名可以任意大小写 iptables -E hello happy #修改自定义的链名 iptables -t filter -I happy -s 192.168.206.30 -p icmp -j REJECT #禁止192.168.206.30ping本机 自定义没有策略&a…

[241129] Docker Desktop 4.36 发布:企业级管理功能、WSL 2 增强 | Smile v4.0.0 发布

目录 Docker Desktop 4.36 发布&#xff1a;企业级管理功能、WSL 2 和 ECI 增强Smile v4.0.0 发布&#xff01;Java 机器学习库迎来重大升级 Docker Desktop 4.36 发布&#xff1a;企业级管理功能、WSL 2 和 ECI 增强 Docker Desktop 4.36 带来了强大的更新&#xff0c;简化了…

Linux信号集、信号的阻塞信号驱动

一、信号集 信号的三种方式&#xff0c;即使是忽略&#xff0c;也仍然打断了进程的进行&#xff08;相当于是捕捉了信号&#xff0c;执行的了空函数什么都没做&#xff09;&#xff0c;可如果在访问重要资源时不希望被打断呢&#xff1f; 可以用阻塞&#xff0c;即产生了信号却…

什么是内网什么是外网?区别是什么

内网和外网是计算机网络中的两个基本概念&#xff0c;它们在定义、特点和使用场景上有显著的区别。‌虎观代理小二将带大家详细了解内网与外网的定义以及它们之间的主要差异&#xff0c;帮助读者更好地理解和应用这两种网络。 内网&#xff08;局域网&#xff0c;LAN&#xff0…