/ / Jak uzyskać dostęp do javascript ActiveXObject - javascript, przeglądarka, flash

Jak uzyskać dostęp do JavaScriptu ActiveXObject - javascript, przeglądarka, flash

Próbuję sprawdzić dostępność Flash Playera i wersję podaną poniżej

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)];
}
}

Zwraca poprawną wersję, jeśli jest dostępna.

Ale napotykam problem w następującej sytuacji -

  1. Załóżmy, że nie ma zainstalowanego Flashplayera
  2. Otworzyłem przeglądarkę (korzystam z przeglądarki Firefox) i uzyskuję dostęp do wyżej wspomnianego javascript (osadzanie w HTML), zwraca 0.0.0, co jest poprawne
  3. Teraz zainstalowałem Flash-Playera i uzyskuję dostęp do tego samego kodu bez zamykania przeglądarki, nadal zwraca wersję 0.0.0, co jest złe
  4. Ale jeśli ponownie otworzę przeglądarkę, daje prawidłowy wynik.

Kiedy przeglądarka ładuje ActiveXObject? Czy jest jakiś sposób na uzyskanie prawidłowej wersji Flash Playera bez ponownego otwierania przeglądarki?

Odpowiedzi:

0 dla odpowiedzi № 1

Przypuszczam, że wersja zostanie poprawnie zwrócona po ponownym załadowaniu przeglądarki, więc możesz po prostu ustawić setInterval jeśli nie jest dostępna lampa błyskowa, sprawdzaj co 30 sekund, czy stała się dostępna, i załaduj ponownie, jeśli stała się dostępna.

Dodatkowo, jeśli umieścisz ukryty obiekt flashna stronie, w wielu przeglądarkach sam flash przeładuje wszystkie zakładki, na których widzi obiekt flash. A może to przeglądarka sama dokonuje odświeżania, nie jestem pewien, ale wiem przynajmniej, że jeśli taki obiekt znajduje się na stronie, odświeży się w różnych przeglądarkach.