Re: [閒聊] 近況 + JavaScript
看板mud_sanc (Sanctuary - 聖殿)作者laechan (揮淚斬馬雲)時間6年前 (2018/10/19 23:23)推噓1(1推 0噓 0→)留言1則, 1人參與討論串2/10 (看更多)
繼續,最近依舊忙,大概至少忙到下禮拜五,新設備通常要運轉一
段時間才會穩定,我剛好是趁這時間把操作手冊全部編完。
====
最近最常使用到的兩個 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,用意是讓小黑窗一閃即逝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.106.224
※ 文章網址: https://www.ptt.cc/bbs/mud_sanc/M.1539962582.A.684.html
※ 編輯: laechan (122.117.106.224), 10/19/2018 23:26:56
推
10/22 21:01,
6年前
, 1F
10/22 21:01, 1F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 10 篇):
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
460
583