0

以下に示すように、Flash Playerとバージョンの可用性を確認しようとしています

var a = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
if (a) { // a will return null when ActiveX is disabled
    d = a.GetVariable("$version");
if (d) {
   d = d.split(" ")[1].split(",");
   playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
}
}

利用可能な場合、正しいバージョンを返します。

しかし、次の状況で問題に直面しています-

  1. フラッシュプレーヤーがインストールされていないとします
  2. ブラウザーを開き (Firefox を使用しています)、上記の JavaScript にアクセスし (HTML 内に埋め込む)、正しい 0.0.0 を返します。
  3. 今、私はフラッシュプレーヤーをインストールし、ブラウザを閉じずに同じコードにアクセスしましたが、それでもバージョンが間違っている 0.0.0 として返されます
  4. しかし、ブラウザを再度開くと、正しい結果が得られます。

ブラウザはいつ ActiveXObject をロードしますか? ブラウザを再度開かずに正しいバージョンの Flash Player を取得する方法はありますか?

4

1 に答える 1

0

ブラウザをリロードするとバージョンが正しく返されると思います。そのため、setIntervalフラッシュが利用できない場合は a を設定し、30 秒ごとにフラッシュが利用可能かどうかを確認し、利用可能になった場合はリロードします。

さらに、非表示の flash オブジェクトをページに配置すると、多くのブラウザでは flash 自体が flash オブジェクトを表示するタブを再読み込みします。あるいは、ブラウザ自体が更新を行っているのかもしれませんが、少なくとも、そのようなオブジェクトがページ上にある場合、さまざまなブラウザで更新されることはわかっています。

于 2013-04-29T11:45:19.650 に答える