プロが教えるわが家の防犯対策術!

こんばんは

下記内容はHTAアプリケーションにおいて、button1をクリックすると、1回目はSample1プロシージャが発動をし、2回目以降はSample2プロシージャが発動することを期待したコードになります。

<body>
<script type="text/vbscript">
Sub Sample1
button1.onclick = "Sample2"
msgbox "Sample1"
End Sub

Sub Sample2
msgbox "Sample2"
End Sub
</script>

<input type="Button" onclick="Sample1" value="実行" id="button1">
</body>

しかし、実際には2回目以降はメッセージボックスが表示されず、onclickイベントが動作していないようです。

ここで質問なのですが、onclick="Sample1"の状態からonclick="Sample2"の状態へとタグ内容を変更をすることはできるのでしょうか?(if条件式を用いてプロシージャの実行先を変更したいのではありません。タグの書き換えによる実行先の変更を目的とした質問です)

また、onclickから他のイベント(例えばonmouseover)に変更することはできるのでしょうか?
以上2点です。ご存じの方は教えていただきたいです。


なお、現状の回避策としてはinputタグをdiv要素に組み込んで、div1.innerHTMLにてinputタグの中身をすべて書き換えています。↓

Sub Sample1
div1.innerHTML = "<input type=""Button"" onclick=""Sample2"" value=""実行"" id=""button1"">"
msgbox "Sample1"
End Sub

<div id="div1">
<input type="Button" onclick="Sample1" value="実行" id="button1">
</div>

A 回答 (1件)

こんにちは


VBSをほとんど知らないので、正しくはないかもしれないけれど、


想像するところ、ハンドラへの参照を設定しなければならないはずなので…
 Sub Sample1
  Set button1.onclick = GetRef("Sample2")
  msgbox "Sample1"
 End Sub

 Sub Sample2
  msgbox "Sample2"
 End Sub
とかで、いけるんではないでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!