Фрагмент кода:
navigator.plugins.refresh(false);
var a = new ActiveXObject(collab.axName);
if (a) {
version = parseVersion(a.version);
}
Я запускаю что-то очень похожее на приведенное выше, чтобы проверить версию моего установленного плагина FB. Если он устарел, я заменяю его более новой версией (стандартный установщик Windows Firebreath bog). Однако, если я снова запускаю фрагмент, более новая версия не обнаруживается - новый объект ActiveX имеет старый номер версии.
Создание объекта ActiveX кажется ключевым - установка обновления перед созданием объекта будет работать правильно, и обновление будет обнаружено при перезапуске браузера. И обновления отлично работают в браузере NPAPI (который определяет версию с помощью navigator.plugins).
Интернет Эксплорер 10, Виндовс 7.
Мой вопрос:
Является ли это ожидаемым поведением (или свидетельствует об ошибке в моем коде)? Если это ожидается, существует ли известное обходное решение или альтернативный подход для достижения той же цели установки обновления без перезапуска браузера (например, определение версии без создания экземпляра, принудительное обнаружение обновления ActiveX)?