Тема: HTA: синхронизация VBScript и JavaScript
Можно совместно использовать VBScript и JavaScript в одном HTA(HTML) документе.
Вызов функции JavaScript из области VBScript осуществляется достаточно просто:
<META HTTP-EQUIV=Content-Type content='text/html;charset=windows-1251'>
<HTML>
<BODY SCROLL="NO">
<SCRIPT Language="JavaScript">
function sample()
{alert('hello Dword!')}
</SCRIPT>
<SCRIPT Language="VBScript">
'Вызов функции JavaScript из области VBS
sample()
window.close()
</SCRIPT>
</BODY>
</HTML>
Вызов функции VBScript из области JavaScript осуществляется несколько сложнее, путем передачи VBScript-функции как параметра.
<META HTTP-EQUIV=Content-Type content='text/html;charset=windows-1251'>
<HTML>
<BODY SCROLL="NO">
<SCRIPT Language="JavaScript">
//Вспомогательная функция JavaScript
function callDWorld(param)
{return param}
</SCRIPT>
<SCRIPT Language="VBScript">
'Основная функция VBScript
Function Sample()
MsgBox "Hello DWORD!",vbExclamation+vbSystemModal,"Sample"
Sample=0
End Function
</SCRIPT>
<SCRIPT Language="JavaScript">
//Вызов вспомогательной функции
//с передачей основной функции
//как параметра
callDWorld(Sample())
window.close()
</SCRIPT>
</BODY>
</HTML>
Пользуясь методом window.close() и тем, что скрипт общей области HTA(HTML) документа выполняется до отображения окна, можно пробовать создавать неоконные HTA проекты, с одновременным использованием VB и JavaScript(некий аналог .WSF). Например в JavaScript отсутствует функция Hex, зато такая функция есть в VBScript. Пользуясь вышеприведенными соображениями, можно получить Hex представление числа из области JavaScript:
<META HTTP-EQUIV=Content-Type content='text/html;charset=windows-1251'>
<HTML>
<BODY SCROLL="NO">
<SCRIPT Language="JavaScript">
//Вспомогательная функция JavaScript
function callDWorld(param)
{return param}
</SCRIPT>
<SCRIPT Language="VBScript">
'Основная функция VBScript(получение HEX представления числа)
Function Sample(data)
MsgBox "0x" & Hex(data),vbExclamation+vbSystemModal,"Hex Sample"
Sample=0
End Function
</SCRIPT>
<SCRIPT Language="JavaScript">
//Вызов вспомогательной функции
//с передачей основной функции
//как параметра
var x=775676
callDWorld(Sample(x))
window.close()
</SCRIPT>
</BODY>
</HTML>