この記事に基づいて、setInterval は「関数」文字列を GetRef() に渡すと考えましたが、eval のように機能するようです。
<html>
<head>
<Title>SetIntervalDemo</Title>
<hta:application id="SetIntervalDemo" scroll = "no">
<script type="text/vbscript">
Dim g_sp0
Sub sp0()
MsgBox "sp0 called"
ClearInterval g_sp0
End Sub
Sub sisp0()
g_sp0 = SetInterval(GetRef("sp0"), 1000)
' g_sp0 = SetInterval("mp0", 1000) <---- Type Mismatch
End Sub
Dim g_sp1
Sub sp1(x)
MsgBox "sp1 called: " & x
ClearInterval g_sp1
End Sub
Sub sisp1()
g_sp1 = SetInterval("sp1(4711 + g_sp1)", 1000)
End Sub
Dim g_mp0_a
Dim g_o_a
Dim g_mp0_b
Dim g_o_b
Sub simp0()
Set g_o_a = New cC : g_o_a.m_sName = "Alpha"
Set g_o_b = New cC : g_o_b.m_sName = "Beta"
g_mp0_a = SetInterval("g_o_a.mp0", 1000)
g_mp0_b = SetInterval("g_o_b.mp0", 1000)
End Sub
Class cC
Public m_sName
Public Sub mp0()
MsgBox m_sName & ".mp0 called"
ClearInterval g_mp0_a
ClearInterval g_mp0_b
End Sub
End Class
</script>
</head>
<body>
<input type="button" value="sp0" onclick="sisp0" />
<input type="button" value="sp1" onclick="sisp1" />
<input type="button" value="mp0" onclick="simp0" />
</body>
</html>
したがって、Subs、いくつかのグローバル、およびメソッド呼び出し ( "g_o_a.mp0"
) を使用すると、メソッドを定期的に呼び出すことができます。(本番コードで使用する前に、慎重にテストしてください。)