Может ли JavaScript проверить версию элемента управления ActiveX без загрузки? - PullRequest
1 голос
/ 26 июля 2011

Есть ли способ спросить IE, какую версию элемента управления ActiveX он установил и активировал без фактической загрузки соответствующего элемента управления? Я надеюсь на что-то похожее на navigator.mimeTypes в других браузерах, где я могу получить метаданные о плагинах, не касаясь самих плагинов. У меня есть элемент управления CLASSID и его servername / typename (который я могу передать new ActiveXControl(), если я хочу загрузить и создать экземпляр, чего у меня нет); Я почти наверняка смогу получить любой другой идентификационный ключ, который мне нужен.

Я знаю, что могу создать экземпляр объекта и использовать доморощенный вызов GetVersion() -типа , чтобы узнать его версию, но в этом случае я загрузил элемент управления. Это плохо, потому что (по крайней мере, в IE9 на Win7), если IE загрузил элемент управления ActiveX и затем получил запрос на установку более новой версии из файла cab, он скажет пользователю перезагрузить свой компьютер перед тем, как это позволит получить доступ к контролю. Кажется, это работает нормально, если вы просто перезапустите IE, но мы не можем точно сказать пользователям, чтобы они просто игнорировали приглашение.

На данный момент я предполагаю, что ответ таков: «вы не можете этого сделать; IE и ActiveX - два всадника апокалипсиса», но я подумал, что выложу это там.

1 Ответ

1 голос
/ 26 июля 2011

Я не пробовал этого, но вы можете взломать что-нибудь вместе с условными комментариями.

С этой записи в блоге , надстройки могут зарегистрировать строку версии симя и номер, тогда будут применяться стандартные условные комментарии IE.Если вы хотите запустить его с помощью JavaScript, вы можете (извините за слабость) использовать document.write для записи условного комментария вокруг тега, который затем будет запущен в соответствующем случае.

Опять же, поскольку я не пробовал этого, возможно, IE не будет обрабатывать условный комментарий в случае document.write, но, надеюсь, он это сделает.

Наконец, учтите, что условные комментарии уходя в IE 10 , так что это может не сработать тогда, но это то, что может быть решено будущим вами.

...