继续,最近依旧忙,大概至少忙到下礼拜五,新设备通常要运转一
段时间才会稳定,我刚好是趁这时间把操作手册全部编完。
====
最近最常使用到的两个 javascript ActiveX 物件是
var fso = new ActiveXObject("Scripting.FileSystemObject")
var wsh = new ActiveXObject("WScript.Shell")
前者是处理档案的,当 new 了一个 fso 物件出来时,它就有几种
方法(属性)可使用:
fso.FileExists("档名") 判断档案是否存在
var fs = fso.OpenTextFile("档名",参数..);
当 open 出了一个 fs 档案物件时,这个物件就能做以下事情:
var str = fs.ReadAll(); // 相当于 read_file("档名");
那因为我"那时候"发现读进来的东西似乎没办法在网页上正确地分
行显示,所以我用了另一种读取方式:
str="";
while(!fs.AtEndOfStream) // 直到档案的尽头
{
tmp=fs.ReadLine(); // 一行一行将资料读出来
.
.
str+=tmp+"<BR>"; // 自己加 <BR>分行
}
后来知道了有 str.replace 可用后又简单多了。
那既然有 ReadLine 自然就有 WriteLine,我因为试 .Write 试
了老半天都失败,就决定用 WriteLine(这个则会成功),我的做
法是:
1.OpenTextFile() + ReadAll() 把档案读进来
2.再用 OpenTextFile 带特殊参数去重新开启一个 ForWriting
的档案
3.然后把原始档案的内容再加上我欲新增的内容
4.最后用 WriteLine 的方式将档案写进去
上面其实用 ForAppending 的开启方式就行了,之所以没这么做
,是因为我希望每次附加的内容都在档案的最前头。
(山不转路转的改法)
wsh 物件则简单多了我通常只做以下的事
wsh.Run("cmd.exe /c 指令内容",0);
wsh.Run("cmd.exe /c 指令内容 > d:\\cmd.txt",0);
简单的说就是可以叫出小黑窗去执行某个指令或批次档,而且这
个小黑窗一闪即逝,上面第二行的意思,是将指令的执行结果存
成 d:\cmd.txt 档,然后我再 ReadLine() 进来为每一行加上分
行的 <BR>,就可以把执行结果显示在网页上的意思。
目前则还不需要用到 Dictionary 物件,这物件我在写 asp 网页
时期还蛮常用的,很好用,因为它相当于 mudlib 的 mapping 变
数格式。
string 则用到了以下几种:
str.replace(" ","_"); 将 str 字串中的 空格 替换成 底线
str.replace(/ /gi,"_"); 将 str 字串中所有的空格替换成底线
strs=str.split("\n"); 相当于 strs=explode(str,"\n");
if(!str.indexOf("end")) 相当于 if(strsrch(str,"end"))
最后就是越积越多的 html 标签复习,很多东西我以前都写过
用过但是都忘光,刚好趁这次机会全部总复习,目前已用到:
<table 画表格
<input type=text 请输入名称:
<input type=buttom 确定 取消 送出 等按纽
<textarea 请输入一段文字
<select 下拉式选单
<h2> 想要简单呈现比较大的文字时
<frameset 规划首页编排
我猜再过不久我就会使用到跑马灯、以及选取按钮,以及当游
标移动到超连结或按钮时会先跳出的说明文字那个。
我预计最慢下礼拜二可以完成设备资料查询网页,最慢下礼拜
五可以编完所有操作手册的内容,然后,我就要转移到下一个
据点继续忙其它事了。(10 月起大概就是这样的工作型态)
以下是在网页编一颗叫出本机控制台的按钮的简单例子
<html>
<script type="text/javascript">
function call_cmd(cmd_string)
{
var wsh;
wsh = new ActiveXObject("Wscript.Shell");
wsh.Run("cmd.exe /c "+cmd_string,0);
wsh.Quit();
}
</script>
<input type=button value='叫出控制台' onclick='call_cmd("control")'>
</html>
网页就是长这样
┌────────────────────
│
│ 叫出控制台 <= 按钮
│
│
按这颗按钮→触发onclick→呼叫 call_cmd 函数→叫出小黑窗执行 control 指令
使用 cmd.exe /c 以及后面参数带 0,用意是让小黑窗一闪即逝。