2017-09-26 4 views
0

J'écris un HTA pour faire des choses de base, une chose dont j'ai besoin est d'afficher de l'espace libre sur le disque dur. J'ai cette section pour le VB Script:La variable VBScript ne s'affiche pas dans document.write

Dim FreeHDSpace 
Dim test32 
test32 = 56 

Sub Window_onLoad 
    Dim FreeHDSpace 
    window.resizeTo 550,700 
    Set objWMIService = GetObject("winmgmts:") 
    Set objLogicalDisk = objWMIService.Get("Win32_LogicalDisk.DeviceID='c:'") 
    FreeHDSpace = objLogicalDisk.FreeSpace 
    FreeHDSpace = FreeHDSpace/1024 
    FreeHDSpace = FreeHDSpace/1024 
    FreeHDSpace = FreeHDSpace/1024 
    FreeHDSpace = Int(FreeHDSpace) 
    FreeHDSpace = CStr(FreeHDSpace) 
    msgBox(FreeHDSpace) 
End Sub 

Et cette section dans mon HTML:

<p><font face="tahoma" color="white" size="4">Hard drive space remaining:</font> 
<script type="text/VBScript"> 
    document.write "<font size='4' face='Tahoma' color='white'>" & FreeHDSpace & " Gb</font>" 
</script></P> 

Si j'utilise la variable test32 au lieu de FreeHDSpace dans le code HTML affiche 56. Comme vous pouvez vois que j'ai essayé de le changer en une chaîne et de le former à un plus petit nombre.

Je suis sérieusement coincé, toutes les suggestions grandement appréciées.

Répondre

1

Vous lisez la variable lorsque l'élément <script> est traité puis événement de charge de la fenêtre des feux, ce qui déclenche la fonction qui donne la variable une valeur (mais qui est trop tard!).

Vous ne devez pas attendre l'événement load avant de donner sa valeur à la variable.

+0

Oui !! Je les ai déplacés en dehors du sous-ensemble onLoad et il se charge parfaitement! – CSiciliano