JScript服务器运行,jscript模拟的“控制台”程序Web服务器教程

摘要:jscript模拟的“控制台”程序

无聊的时候想到用jscript模拟Console程序,结果试了一下,觉得还蛮好玩的:P

实现了一个jscript“控制台”类

在读代码前先放出三个Demo:

下面是程序代码:

//控制台类,模拟运行在控制台上的程序,可以控制“标准输入输出流”(程序模拟)

//使用方法:在页面上包含Console.js文件,构造Console对象,定义Main()函数,在Main函数中写控制命令

//版本:1.00

//作者:Akira

//编写日期:2004-11-19

function Console(page, consoleName)

{

//静态成员

Console.KEY_ENTER = 13;           //回车键

Console.KEY_RETURN = 13;         //回车

Console.KEY_NEWLINE = 10;            //换行

Console.KEY_TAB = 9;                                    //TAB键

Console.KEY_BACKSPACE = 8;            //退格键

Console.KEY_LEFT = 37;                        //左移

Console.KEY_RIGHT = 38;                        //右移

Console.KEY_UP = 39;                                        //上移

Console.KEY_DOWN = 40;                        //下移

//初始化Page

if (page == null)

{

page = self;

}

if (page != self)

{

//do sth here...

throw new Error("参数错误:目前版本不支持为其他窗体对象初始化控制台\n请使用self参数");

}

this.page = page;

//输入输出流属性,用字符串数组模拟流

this.stream = new Object();

this.stream.stdin = new Array(); //标准输入流

this.stream.stdout = new Array(); //标准输出流

this.stream.stderr = new Array(); //标准错误流

this.stream.stdin.opened = false; //判断当前输入流是否开启,开启=允许写入

this.stream.stdin.ReadOffset = 0; //判断当前输入流偏置,Read()方法使用

this.stream.semaphores = 0; //流信号量,用来控制输出流显示,当调用输入函数时,信号量增加,

//当信号量大于stdin成员数目的时候,抛出异常阻塞标准输出流,用以模拟输入等待

Console.prototype.Signal = function()

{

if(this.stream.semaphores == this.stream.stdin.length)

{

return true;

}

if(this.stream.semaphores > this.stream.stdin.length)

{

throw new WaitForInput(); //抛出异常阻止程序往下执行,用以等待输入

}

return false;

}

this.body = page.document.body;

if (this.body == null)

{

throw new Error("控制台缺初始化失败,检查主体文档是否缺少BODY标记");

}

this.page.document.title +

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值