- ベストアンサー
イベントをつかってコールバックさせたいのですが
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>
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
そもそも navigateComplete2 なんてイベントは聞いた事がないです。 ということで調べてみましたが、VBで使われるイベントじゃないですか? VBのコンポーネントとして同じようなものがありました。
その他の回答 (1)
ページの表示を待つなら onload では?
補足
回答ありがとうございます。 しかし、イベント名をonloadに置き換えても、 「オブジェクトでサポートされていないメソッドまたはプロパティです」 になってしまいました。
補足
var ie = new ActiveXObject("InternetExplorer.Application"); で返ってくるオブジェクトって、InternetExplorerオブジェクトだと思ったので、MSDNの次のページのリファレンスを見て http://msdn2.microsoft.com/en-us/library/Aa752084.aspx navigateComplete2 イベントが使えると思ったんですが・・・