問:
您好,腳本專家!如何確定在HTA中選擇了哪些文本?
--DO
答:
您好,DO。您知道,大多數人認為每天編寫“您好,腳本專家!”專欄是世界上最吸引人、最令人興奮的工作之一。如果編寫此專欄的腳本專家不這麼懶惰的話,也許是這樣。比如說,很多時候他選擇自己認為可以編成腳本的問題。通常他手頭沒有能完成問題中提到的任務的腳本,但他知道可以編寫這樣一個腳本。這是行之有效的方法,但不是特別令人興奮的方法。
不過,這個問題有點不太一樣。您如何能確定在HTA中選擇了哪些文本?哎呀,我們也拿不准您是否能確定在HTA中選擇了哪些文本。但是,事實證明您能夠確定:
<html>
<head>
<title>HTATest</title>
</head>
<SCRIPTLANGUAGE="VBScript">
SubShowSelection
SetobjSelection=Document.Selection.CreateRange()
MsgboxobjSelection.text
EndSub
</SCRIPT>
<body>
<textareaname="ScriptArea"rows=5cols=40></textarea><p>
<inputid=runbuttontype="button"value="ShowSelection"onClick="ShowSelection">
</body>
我們在這裡使用的是一個小而簡單的HTA,其外觀如下:
什麼?您怎麼能沒有印象呢?那麼,試一試吧。在該文本區域鍵入一些文本,然後突出顯示該文本的一部分:
現在單擊標籤為Show Selection(顯示選擇)的按鈕。非常幸運的是,您將看到一個消息框,告訴您哪些文本已被選中:
您說對了:看上去就是這個樣子了。
那麼,這一切都是如何做到的呢?我們首先創建一個含有一個文本區域和一個按鈕的HTA。我們不討論創建HTA 本身的細節,如果您需要一些背景信息,請查看HTA Developers Center(英文)或Scripting Week 3 webcast on HTAs(英文)。今天我們只重點討論您單擊此按鈕時運行的子例程:
SubShowSelection
SetobjSelection=Document.Selection.CreateRange()
MsgboxobjSelection.Text
EndSub
沒錯:只有兩行代碼。首先我們創建一個新的TextRange對象;這一過程可通過調用CreateRange()方法來實現,此方法恰好是Document.Selection對象的一部分: