Доступ к переменной VBScript в Javascript внутри HTA - PullRequest
2 голосов
/ 24 декабря 2011

Я пытаюсь получить доступ к переменной в javascript, которую я установил в vbscript, все в одном файле hta:

<script type="vbscript">
    var globalVariable = test123
</script>

<script type="text/javascript">
    var globalVariable = <%= globalVariable %>;
</script>

Это не заполняет переменную globalVariable чем-либо.Я также пытался

var globalVariable = "<%= globalVariable %>";

Это просто заполняет строку в кавычках в переменную globalVariable.

Я не могу получить значение 'test123', установленное в разделе VBScript для заполнения переменной JS в разделе JS.

Любая помощь будет принята.

Ответы [ 3 ]

4 голосов
/ 24 декабря 2011

Исходя из вашего вопроса, я написал HTA, содержащий следующий код:

<script type="text/vbscript">
dim globalvariable
globalvariable = "test123"
</script>
<script type="text/javascript">
alert(globalvariable);
</script>

, а значение "test123" отображается в окне предупреждения.

Обратите внимание на следующееразличия с вашим кодом:

  • vbs синтаксис языка отличается от синтаксиса js;
  • ваш код js для меня выглядит как код asp, а не js;
  • Iполучил сообщение об ошибке, используя префикс '' без 'text /';
3 голосов
/ 24 декабря 2011

Смешивание языков в приложении .HTA легко, если вы просто следуете синтаксическим правилам для каждого языка (например, в VBScript нет «var»).

<html>
 <head>
  <hta:application id = "mix"></hta>
  <script LANGUAGE="VBScript">
  Dim gsX : gsX = "global VBScript variable"
  </script>
  <script LANGUAGE="JScript">
  alert(gsX);
  </script>
 </head>
 <body>
 </body>
</html>
1 голос
/ 24 декабря 2011

Можно ли использовать элемент DOM, например скрытое поле ввода, для связи между VBScript и JS?Если это работает, вы можете инициировать пользовательское событие при изменении значения и прослушивать это событие в обоих разделах.

Я никогда раньше не использовал VBScript, поэтому это может быть невозможно.

...