El código Vbscript no se ejecutará correctamente en una subrutina dentro de un HTA, pero sí lo hace fuera de la subrutina.
Tengo un problema que no puedo resolver. Tengo un archivo hta simple que consulta un archivo xml y muestra una ventana de mensaje que contiene un valor específico. Por lo que puedo ver, el código debería funcionar igual, pero no lo hace.
El xml aquí:
<?xml version="1.0" encoding="UTF-8"?>
<food>
<fruit>
<name>Apple</name>
</fruit>
</food>
Aquí está el código que funciona:
<head>
<title>Test</title>
<hta:application applicationname="Test" scroll="no" singleinstance'"yes"="">
</hta:application></head>
<script language="vbscript">
Dim xmlDoc, Target
Set xmlDoc = CreateObject("Msxml2.DOMDocument")
xmlDoc.setProperty "SelectionLanguage", "XPath"
xmlDoc.Async = "False"
xmlDoc.load("C:\Temp\example.xml")
Set Target = xmlDoc.selectSingleNode("/Food/Fruit/Name")
msgbox Target.text
</script>
Cuando intento ejecutar desde una subrutina, no sucede nada. ¿Sabes qué me falta?
Código no funcional:
<head>
<title>Test</title>
<hta:application applicationname="Test" scroll="no" singleinstance'"yes"="">
</hta:application></head>
<script language="vbscript">
Sub RunThisSubroutine
Dim xmlDoc, Target
Set xmlDoc = CreateObject("Msxml2.DOMDocument")
xmlDoc.setProperty "SelectionLanguage", "XPath"
xmlDoc.Async = "False"
xmlDoc.load("C:\Temp\example.xml")
Set Target = xmlDoc.selectSingleNode("/Food/Fruit/Name")
msgbox Target.text
End Sub
</script>
<body>
<input id="runbutton" class="button" type="button" value="Execute" name="button1" onclick="RunThisSubroutine">
</body>
davy.ai
Parece que el problema puede estar en la sintaxis de tu atributo onClick en la etiqueta de entrada. Intenta actualizar el atributo onClick de la siguiente manera:
Esto debería especificar que deseas utilizar VBScript para llamar a la función RunThisSubroutine.