>Kommandoer >Funktioner >Objekter |
>Microsoft Vbscript Reference
>DevGuru Vbscript Reference
VBscript kan benyttes til
- Windows scripting (i stedet for BAT-filer) >WSH
- Web scripting, både i HTML-kode og
i ASP-kode
Til HTML-kode vil man normalt benytte javascript, som kan bruges i både Internet Explorer og i Netscape (VBscript kan kun benyttes i IE). Desuden er javascript standard-scriptsprog i IE - sammenlign følgende (klik på: :):
<font face="Wingdings" onclick="alert('javascript')">:</font>
|
: |
<font face="Wingdings" onclick="vbscript:alert('vbscript')">:</font>
<font face="Wingdings" onclick="vbscript:msgbox 'vbscript'">:</font>
|
: : |
Bemærk, at både javascript og vbscript kan benytte funktionen alert(), men da javascript er standarden, er "alert()" det samme som "javascript:alert()". Vbscript skal derimod altid angives med "vbscript: osv".
Desuden er javascript ofte lettere at bruge
- fx vil man ofte gerne benytte et 'link', så man kan se, at her er noget aktivt. Med
javascript kan man benytte denne kode:
<a href="javascript:alert('klik her:')">
<font face="Wingdings">:</font>
</a>
|
: |
Koden efter href= skal altid returnere noget, som kan tolkes som et
'dokument'.
I JavaScript er alert() en funktion, som returnerer værdien NULL - dette bliver
tolket som 'intet dokument' - dvs vi undgår at href= åbner et nyt dokument.
Hvis man forsøger det samme med VBscript, vil man se, at det ikke virker - fordi alert() i VBscript er en subrutine, som ikke returnerer noget som helst til href= :
<a href="vbscript:alert('klik her:')">
<font face="Wingdings">:</font>
</a>
|
: | - Denne kode virker ikke - |
Men så kunne man jo blot erstatte alert() med VBscript-funktionen msgbox(), men det virker heller ikke, fordi msgbox() altid returnerer en talværdi (ikke NULL) - dvs href= åbner et nyt dokument, som indeholder denne talværdi.
Men må derfor omskrive vbscript-koden, så den benytter en selvstændig funktion, som ikke får defineret en returværdi - derved returnerer funktionen en NULL-værdi til href=:
<a href="vbscript:klik()"> <font face="Wingdings">:</font> </a>
<script language="vbscript">
Function klik()
alert("klik her:")
End Function
</script>
|
: |
VBScript kode-modeller:
TopDown
ProcedureOrienteret
ObjektOrienteret
Script-koden kan organiseres efter forskellige modeller, som her illustreres ved et program, som udregner og viser antallet af dage til jul. Alle tre modeller giver samme resultat, som kan ses her: :
| jul = cdate("24-12-" & year(date)) dage = datediff("d", date, jul) if dage > 0 then msgbox "der er " & dage & " til jul" elseif dage = 0 then msgbox "det er jul" else msgbox "det var jul for " & -dage & " dage siden" end if |
VBScript - modeller - ProcedureOrienteret
Det er ligegyldigt om procedurer og funktioner står før eller efter hoved-koden
| function DageTilJul(Aar) jul = cdate("24-12-" & Aar) DageTilJul = datediff("d", date, jul) end function dage = DageTilJul(year(date)) if dage > 0 then msgbox "der er " & dage & " til jul" elseif dage = 0 then msgbox "det er jul" else msgbox "det var jul for " & -dage & " dage siden" end if |
VBScript - modeller - ObjektOrienteret
| class Aar private pAar private sub class_initialize() public function DageTilJul() end class set obj = new Aar |