• ベストアンサー

イベントをつかってコールバックさせたいのですが

HTAスクリプトでIEを起動し、ページが表示されるのを待つプログラムを 作成しようとしています。 JavaScriptではスリープができないのでisBusyをがfalseになるのを 待つ代わりに、IEオブジェクトのイベントからコールバックさせようと思いました。 そこで次のプログラムを書いたのですが、 イベントハンドラ登録の文法が間違っているらしく、実行時に 「オブジェクトでサポートされていないメソッドまたはプロパティです」 になってしまいます。 この行でやりたいことは、ieオブジェクトの NavigateComplete2 イベントが発生したときに、onComplete が呼ばれるようにすることです。 イベントハンドラの登録方法、または ieがページを読み終わるのを検知するよい方法がありましたら お教え下さい。よろしくお願いします。 ■sample.hta <html> <script> function perform(){   var ie = new ActiveXObject("InternetExplorer.Application");   ie.visible=true;   ie.navigateComplete2 = onComplete; // ←この行がエラー   ie.navigate("http://www.1101.com"); } function onComplete(a, b){   alert("complete"); } </script> <body> <input type=button onclick="perform();" value="open"> </body> </html>

質問者が選んだベストアンサー

  • ベストアンサー
  • MrYoYoYo
  • ベストアンサー率33% (38/115)
回答No.2

そもそも navigateComplete2 なんてイベントは聞いた事がないです。 ということで調べてみましたが、VBで使われるイベントじゃないですか? VBのコンポーネントとして同じようなものがありました。

thamansa
質問者

補足

var ie = new ActiveXObject("InternetExplorer.Application"); で返ってくるオブジェクトって、InternetExplorerオブジェクトだと思ったので、MSDNの次のページのリファレンスを見て http://msdn2.microsoft.com/en-us/library/Aa752084.aspx navigateComplete2 イベントが使えると思ったんですが・・・

その他の回答 (1)

noname#39970
noname#39970
回答No.1

ページの表示を待つなら onload では?

thamansa
質問者

補足

回答ありがとうございます。 しかし、イベント名をonloadに置き換えても、 「オブジェクトでサポートされていないメソッドまたはプロパティです」 になってしまいました。

関連するQ&A

専門家に質問してみよう