Czy można wykryć awarie wtyczek flash w głównych przeglądarkach (firefox, chrome, safari i opera) za pośrednictwem javascript?Wykrywanie błędów wtyczki FLASH ulega awarii
Odpowiedz
Może mógłbyś użyć skryptu keep alive w twoim pliku AS3, który rozmawia ze stroną js, jeśli js nie otrzyma połączenia przez kilka sekund, możesz mieć czas i poradzić sobie z nim jak z awarią flash .
Nie jestem pewien, czy to działa, czy nie. Można okresowo uzyskać odwołanie do obiektu Flash i sprawdzić, czy ma on metodę SetVariable.
function checkFlashCrashed() {
try {
var tmp = document.getElementById("flashObjectId").SetVariable;
if(!tmp) {
alert("Flash crashed");
return;
}
} catch (e) {
alert("Flash crashed");
return;
}
setTimeout(checkFlashCrashed, 1000); // check it out every one second
}
SetVariable to funkcja interfejsu, którą można wywołać z kodu JavaScript. Jeśli flash zawiesza się, jego interfejs również powinien ulec awarii. Dlatego może to być rozwiązanie.
Obsługa wyjątków globalnych w języku ActionScript w celu wywołania interfejsu zewnętrznego w UncaughtErrorEvent.UNCAUGHT_ERROR.
Gdy wystąpi błąd w środowisku wykonawczym Flash Player, może wychwycić wyjątek i sygnalizować JavaScript.
tak, ale co z tym, że nie masz dostępu do kodu swojego odtwarzacza? Na przykład: odtwarzacz youtube ulega awarii na stronie, jak wykrywać? – Skay
Zależy od tego, co myślisz o fałszywych alarmach.
Możesz mieć watchdoga, który wykona wywołanie ajax "Flash się nie zawiesił", jeśli flash nadal działa. I przypuszczam, że flash rozbił się, jeśli nie został napisany. Spowoduje to utworzenie fałszywych alarmów, jeśli użytkownik zamknie stronę przed sprawdzeniem.
Możesz mieć watchdoga, który wykona wywołanie ajax "Flash się zawiesił", jeśli flash nie działa. To pominie awarie, na przykład awarię, która zabije całą przeglądarkę.
Być może możesz mieć oba psy stróżujące, dzięki czemu masz lepsze pojęcie o tym, co się dzieje.
Ciekawi, co próbujesz osiągnąć dzięki wykryciu. – Codex73
Może chce odświeżyć stronę? –