0

更新後にブラウザを再起動せずにプラグインをリロードしたい。Mac版を試してみましたが、問題なく動作しますが、バージョンごとにプラグイン名を変更する必要があります。

navigator.plugins.refresh(false);

http://www.firebreath.org/display/documentation/Deploying+and+updating+your+plugin?focusedCommentId=8585308#comment-8585308

Windowsでこれらの手順を試しましたが、うまくいきませんでした。これで運が良かった人はいますか?誰が何が間違っているのか知っていますか?

「Windowsでは、バージョン固有のファイル名でバージョン固有のディレクトリにインストールする必要さえあります。プラグインがインストールされたら、開いているブラウザでプラグインをリロードするために次のことを試すことができます

<script>
    var myplugin = "<object id=\"plugin\" type=\"application/x-foobar\"> </object>";
    function onload(){ // Assuming this function put your plugin on the page in the first place
        document.getElementById('pluginHere').innerHTML = myplugin;
    }
    function reload(){
        document.getElementById('pluginHere').innerHTML = "";
        document.getElementById('pluginHere').innerHTML = myplugin;
    }
</script>

どうもありがとう。

4

2 に答える 2

1

これは、さまざまな点で失敗する可能性がある難しいトリックです。特に「Windows上で」と言ったので、特に何が問題なのかを推測するのは難しいですが、それがどのブラウザであるかを指定していません。すべてのブラウザーは微妙な方法で異なる動作をし、IE と他のブラウザーはこの点で完全に異なります。

あなたが試すことができること:

  • setTimeout を使用して、プラグインを DOM から削除してから再度追加するまでの間にわずかな遅延を追加します。
  • about:plugins を開き、次に shift-refresh して、新しいバージョンが取得されるかどうかを確認します
  • さまざまなブラウザを試して、動作を確認してください
  • Process Monitorを使用して、レジストリのクエリを監視し、レジストリ キーがいつアクセスされているかを確認します。これを使用して、戦略を計画してください。

とにかく、その一部が役立つことを願っています。以前はその方法でアップグレードしていましたが、エラーが発生しやすく、新しいブラウザーで変更される可能性が高すぎたため、最近では、アップグレード時にクライアントにブラウザーを再起動させるだけです。多くの手間と多くの開発時間を節約できます。

于 2012-08-19T03:27:31.713 に答える
0

内部に MSI を含む署名付き CAB を使用して、プラグインを Internet Explorer にロードします。初めてインストールしたとき、Javascript からプラグインにアクセスできることがわかりましたが、イベントが機能していませんでした。読み込まれたプラグインを見ると、プラグインが読み込まれていませんでした。ページを更新すると、プラグインが読み込まれます。私の解決策は、このスタックオーバーフローの質問から次のコードを追加することでした 。最初のページの読み込み後に一度だけページを更新 すると、魅力的に機能しました。

于 2013-08-14T09:29:18.543 に答える