1

NPAPI プラグインがあり、Web ページに埋め込む前にそのバージョンを検出したいと考えています。バージョンが最新でない場合、ユーザーにプラグインの更新を求めるメッセージを表示したいと思います。

現在、次の方法で実装されています

if (navigator.mimeTypes && navigator.mimeTypes["application/myplugin"]) {
{
    // some code here

    if(navigator.plugins["myplugin"] && navigator.plugins["myplugin"].version >= latest_version) {
        // we have the latest version (embed the plugin into web page)
        document.write ("<object id='plugin'><embed ....></object>");
    } else {
        document.write ("Show message here");
    }

    // some code
}

問題はnavigator.plugins["myplugin"].version、Firefox では問題なく動作するが、Chrome では動作しないことです。versionChrome はプロパティを公開しません。NPAPI コードに独自のプロパティを追加できますが、プラグインをページに埋め込む前に使用する方法がわかりません。

回避策はありますか?

前もってありがとう、アンドリュー

4

3 に答える 3

1

多くのプラグインの名前または説明にバージョン情報が含まれています。埋め込む前にその情報にアクセスできるはずです。

于 2011-02-03T20:58:02.920 に答える
1

名前や説明ではなく、実際にバージョン番号をファイル名に入れました。これは、名前、説明、MIME タイプが同じプラグインが複数ある場合、Firefox は通常、最新バージョンを使用するためです。Firefox の古いバージョンでは、これを処理する方法に一貫性がないため、通常は np???_version.dll ファイルをバージョン固有のサブディレクトリに配置します。

少し面倒ですが、すべての NPAPI ブラウザーで一貫して同じように動作します。

于 2011-02-03T21:13:41.120 に答える
0

バージョンを含むプラグインの JSAPI プロパティを作成できます。このプロパティは、javascript から呼び出されたときにプラグインのバージョンを返します。そのため、プラグインをページに挿入/埋め込みしようとすると、javascript をチェックして適切な呼び出しを行うことができます。

于 2013-06-03T14:05:44.293 に答える