阿瑟 發表
之前有講過如何使用VBscript中的警告視窗, 由於上次有網友提出一些問題, 這次阿得會講解如何用警告視窗來詢問使用者.
前一陣子有網友提出一段Vbscript程式找阿得Debug, 以下是程式碼:
<!--這段是錯誤程式碼, 請不要copy/paste--> if Msgbox("來說聲哈囉",vbAbortRetryIgnore+vbExclamation,"VBscript向您問好")=VbAbort Then Msgbox"不喜歡我嗎" elseif Msgbox("來說聲哈囉",vbAbortRetryIgnore+vbExclamation,"VBscript向您問好")=VbRetry Then msgbox"abc" else Msgbox"也向我打招呼啊?呵呵" end if |
這隻程式執行的流程是:
使用者預期的是跳出一個視窗, 當網友按下不同的按鈕會出現不同的訊息.
但是...程式的執行是先發出一個視窗, 如果這個視窗的按下的按鈕不是中止的話那就再發出第二個視窗, 如果按下的按鈕不是重試的話那就執行else.
會跳出第二個視窗的原因是, 程式並不知道你前面所指的msgbox和後面所指的msgbox是同一個視窗, 因為你用了兩個msgbox, 程式就會出現兩次警告視窗.
如果第一次沒有按下中止按鈕的話就會跳出第二個視窗, 這不是我們想要的.
<script language=vbscript> hialert=Msgbox("來說聲哈囉",vbAbortRetryIgnore+vbExclamation,"VBscript向您問好") if hialert=VbAbort Then Msgbox "不喜歡我嗎" elseif hialert=VbRetry Then msgbox "abc" else Msgbox "也向我打招呼啊?呵呵" end if </script> |
程式的執行過程:
用hialert這個變數紀錄使用者點選的按鈕, 然後用if/else來判斷使用者按下的按鈕發出對應的訊息視窗.
hialert=Msgbox("來說聲哈囉",vbAbortRetryIgnore+vbExclamation,"VBscript向您問好"), 用hialert這個變數紀錄使用者點選的按鈕, vbAbortRetryIgnore代表視窗所含的按鈕為"中止","重試","略過". vbExclamation代表的是視窗所含的圖示是驚嘆號.
if hialert=VbAbort Then,
if/else大家應該都用過吧, 這個是判斷如果hialert紀錄的是"中止"的話...
vbAbort是中止, vbRetry是重試...依次類推