<html>
<head>
<title>HTA Test</title>
<HTA:APPLICATION
ID="objTest"
APPLICATIONNAME="Clear Window"
SCROLL="yes"
SINGLEINSTANCE="yes"
>
</head>
<SCRIPT LANGUAGE="VBScript">
Sub ClearWindow
document.body.InnerHTML = ""
End Sub
</SCRIPT>
<body>
<input id=runbutton type="button" value="Clear" onClick="ClearWindow">
</body>
沒錯,這裡要做的事情很少,我們先使用下面這行程式碼指定視窗標題:
<title>HTA Test</title>
然後使用一些選用的程式碼,替 HTA 設定一些屬性,這部分今天不加詳述,如果您想要更多資訊,請看看 HTA Developers Center (英文) 或看看 Scripting Week 3 網路廣播 Going Beyond the Command Line with HTML Applications (英文)。
這表示 HTA 裡就只有一個標示為 Clear 的按鈕:
<input id=runbutton type="button" value="Clear" onClick="ClearWindow">
按一下按鈕,就會帶出一個叫做 ClearWindow 的副程式。
這個副程式裡有什麼名堂?其實沒什麼,我們不過是把 document.body 物件的 InnerHTML 屬性設為空字串 (""):
document.body.InnerHTML = ""
這樣就會清除 HTA 視窗了。所以說如果要清除 HTA 視窗,只要把 document.body.InnerHTML 設定為空字串就得了。
等等,還沒完呢!我們要強調整個 HTA 視窗都「清潔溜溜」。例如,按下按鈕前 HTA 是這樣的:
按下按鈕後,HTA 變成這樣:
視窗已經確實清除完畢了,清潔溜溜,連 Clear 按鈕都不見了。有時候您的確是希望連使用者介面元件都不見,但是有時候您希望只清除掉某些項目,例如清掉從前一個指令碼擷取來的資料,而其他項目 (例如按鈕) 要繼續留著。這裡給您介紹改寫過的指令碼,只刪除 HTA 視窗的一部份:
附註:當然您可以按 F5 還原使用者介面,順便重新整理 HTA 視窗。 |
下列為改寫的程式碼:
<html>
<head>
<title>HTA Test</title>
<HTA:APPLICATION
ID="objTest"
APPLICATIONNAME="Clear Window"
SCROLL="yes"
SINGLEINSTANCE="yes"
>
</head>
<SCRIPT LANGUAGE="VBScript">
Sub ClearWindow
DataArea.InnerHTML = ""
End Sub
</SCRIPT>
<body>
<input id=runbutton type="button" value="Clear" onClick="ClearWindow">
<p>
<span id=DataArea>This is the data area.</span>
</body>
這裡我們完成兩大工作:第一,新增一個 <span> 標記,並給予它一個識別碼叫做 DataArea。所謂 Span 是 HTA 的名稱範圍,可供動態修改,例如我們可以使用指令碼在 Span 裡新增文字 (和 HTML 格式)。
也可以清除 Span 裡頭所有的文字和 HTML 格式,這正是我們對 HTA 所做的第二個修改:改寫 ClearWindow 副程式好讓它只清除 DataArea Span,而不是清掉視窗上所有的東西。
Sub ClearWindow
DataArea.InnerHTML = ""
End Sub
為什麼要這麼做呢?這是改寫過的 HTA 初次載入的樣子:
這個 Span (在按鈕正下方) 上頭寫著字 This is the data area。
按下按鈕後 HTA 就變成這樣:
現在您懂了吧?我們清掉了 DataArea,但是視窗沒變,使用者介面 (本例中為 Clear 按鈕) 安然無恙,而且還可以使用。
而且再也沒有鳥會在 HTA 上面一頭撞死了,多一事不如少一事。 |