2013-04-29 66 views
0

我試圖檢查Flash播放器的可用性和版本低於怎樣的JavaScript訪問的ActiveXObject

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. 假設沒有Flash插件安裝
  2. 我開我的瀏覽器(我使用Firefox),並訪問上述的JavaScript(嵌入內部HTML),它返回0.0.0,這是正確的
  3. 現在,我已經安裝了flash播放器,並訪問相同的代碼,而不關閉瀏覽器,它仍然返回版本爲0.0.0這是錯誤的
  4. 但是,如果我重新打開瀏覽器,它正在給cor直接結果。

瀏覽器何時加載ActiveXObject?有沒有辦法在不重新打開瀏覽器的情況下獲得正確的Flash Player版本?

回答

0

當我重新加載瀏覽器時,我會壓回正確的版本,因此如果沒有可用的閃存,您可以設置setInterval,並且每30秒檢查一次是否可用,如果可用,請重新加載。

此外,如果您在頁面上放置隱藏的Flash對象,則在很多瀏覽器中,Flash本身會重新加載它看到Flash對象的所有選項卡。或者,也許它是瀏覽器本身進行刷新,不確定,但我確實知道,至少如果這樣的對象在頁面上,它將在各種瀏覽器中刷新。

+0

感謝David的快速回復。我已經嘗試通過重新加載(刷新)瀏覽器。但它仍然沒有給我正確的結果。只有重新打開瀏覽器後才能得到正確的結果(關閉然後再次打開)。如果Flash播放器不可用,我打算重定向到不同的頁面,並且用戶可以在安裝Flash播放器之後單擊鏈接返回原始頁面,而不關閉瀏覽器。 – dgm 2013-04-29 11:51:46

+0

這很奇怪......你是否嘗試添加一個隱藏的「假」Flash對象? – 2013-04-29 11:54:10