問:
您好,腳本專家! 在您的 HTA 示例中,您為我們展示了如何單擊一個按鈕使一個子例程得以運行。 那么,如何向一個按鈕的 onClick 參數添加兩個或多個子例程呢?
-- FM
答:
您好,FM。您知道,在認知心理學中有一個有趣的分支,稱為問題發現;其理論是您回答問題的能力通常首先取決于您問到的問題。 例如,您 – 以及其他幾個人 – 想要知道如何在一個按鈕的 onClick 參數中指定多個子例程。 我們見過人們嘗試對代碼做出各種修改,以下就是一個例子:
<input type="button" value="Run Button" onClick="Script_1; Script_2; Script_3">
正如您所見,這不能解決問題。
那么讓我們將發現問題的技能應用到測試中,看看是否能夠用其它方式來描述該問題。 (通常,腳本專家無需發現問題;問題會設法找到我們。) 下面是問題的關鍵所在: 我們是真的要向 onClick 參數添加多個子例程,還是僅想要在任何時候單擊按鈕時能夠運行多個子例程?
如果是后者,我們有下面的答案:
復制代碼 代碼如下:
<html>
<head>
<title>Multiple Subroutines</title>
<HTA:APPLICATION
ID="objHTAHelpomatic"
APPLICATIONNAME="MultipleSubroutines"
SCROLL="yes"
SINGLEINSTANCE="yes"
WINDOWSTATE="maximize"
>
</head>
<SCRIPT Language="VBScript">
Sub RunScripts
Script_1
Script_2
Script_3
End Sub
Sub Script_1
Msgbox "This is subroutine 1."
End Sub
Sub Script_2
Msgbox "This is subroutine 2."
End Sub
Sub Script_3
Msgbox "This is subroutine 3."
End Sub
</SCRIPT>
<body>
<input type="button" value="Run Button" onClick="RunScripts">
</body>
</html>
注意: 前面的代碼被設計為從一個 HTA(HTML 應用程序)運行。 如果想要測試該代碼,只需復制該腳本,將其粘貼到記事本或者其它的文本編輯器,并且用 .HTA 文件擴展名保存。
如果粗略地看一下該代碼,您可能會注意到按鈕的 HTML 標記:
<input type="button" value="Run Button" onClick="RunScripts">
正如您所見到的那樣,我們僅在 onClick 參數中指定了一個單一子例程 (RunScripts)。 哦,但是看一下子例程 RunScripts 的代碼:
Sub RunScripts
Script_1
Script_2
Script_3
End Sub
答案就在這里。 在該子例程中我們所做的就是調用其它三個子例程: Script_1、Script_2 和 Script_3。這就是我們如何從一個按鈕的單擊事件中運行多個子例程的方法: 我們并不把所有那些子例程都放入 onClick 參數中,而是將其放入 onClick 所調用的單個子例程中。