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. 假设没有安装 flashplayer
  2. 我打开了我的浏览器(我使用的是 Firefox)并访问了上面提到的 javascript(嵌入在 HTML 中),它返回 0.0.0,这是正确的
  3. 现在,我已经安装了 flash-player 并在不关闭浏览器的情况下访问相同的代码,它仍然返回版本为 0.0.0 这是错误的
  4. 但是,如果我重新打开浏览器,它会给出正确的结果。

浏览器何时加载 ActiveXObject?有没有办法在不重新打开浏览器的情况下获得正确的 Flash Player 版本?

4

1 回答 1

0

我认为当您重新加载浏览器时该版本将正确返回,因此您可以设置 a setIntervalif no flash is available 并每 30 秒检查一次它是否可用,如果可用则重新加载。

此外,如果您在页面上放置一个隐藏的 Flash 对象,在许多浏览器中,Flash 本身会重新加载它看到 Flash 对象的任何选项卡。或者也许是浏览器本身在刷新,不确定,但我至少知道如果页面上有这样的对象,它将在各种浏览器中刷新。

于 2013-04-29T11:45:19.650 回答