ActiveXのインストール完了イベントをキャプチャする

activex internet-explorer javascript
ActiveXのインストール完了イベントをキャプチャする

現時点では、ユーザーが持っていない場合、インストールボタンが付いた通常の黄色のバーをドロップダウンするカスタムActiveXプラグインがあります。 ただし、インストールが完了したら、ページを自動的に更新する必要があります。 プラグインが正常にインストールされたことを検出する方法はありますが、プラグインの存在を常にポーリングしているわけではありません。 つまり、これを行わないということです。

function checkForPlugin() {
    try {
            control = new ActiveXObject('Object.One');
            //refresh
    } catch (e) {
            setTimeout("checkForPlugin()" ,2000);
    }
}

これはひどく専門的ではないようで、より良いアプローチが取れるかどうか興味があります。 考えてみてください…​とにかくそこでどうやってリフレッシュするのか正確にはわかりませんが、それについての洞察はありますか? ありがとう。

*アップデート-*上記の方法を使用して動作させ、リフレッシュの問題を解決しました。 しかし、これを実装として本当に喜んでいるわけではありません。 ブラウザが必要なものを取得するまで、バックグラウンドで絶えずポーリングしてそこに座ったままにしておくのは間違っていると感じています。 それは_ひどい_ではありませんが、もっときれいなアプローチがあればいいのにと思います。 誰かアイデアがありますか?

  2  0


ベストアンサー

コントロールにイベントを発生させ、それをリッスンさせることができます。

0


ActiveXインストール終了イベントをキャプチャすることは、一種の誤解だと思います。

基本的に、Webページはシングルスレッドで実行されます。 バックグラウンドインストールなどの非同期処理はありません。

Webページの存続期間には、ActiveXコントロールが既にインストールされているか、何もありません。 `control = new ActiveXObject`がスローする場合、ページのこの存続期間中にActiveXコントロールをインスタンス化することはできません。

つまり、ActiveXコントロールがまだインストールされていない場合、新しくインストールされたActiveXコントロールを使用するには、ページを更新する必要があります。 この更新はIEによって自動的に行われます。

0


与えられた2つの答えは完全に有効ですが、どちらの解決策も私の時間の制約や実装の中で実際に機能しません。 お二人に答えてくれてありがとうございますが、最終的には私の質問で説明したとおりに行きました。

0


タイトルとURLをコピーしました