Проверка установленных компонентов у пользователя (Internet Explorer)
Проверить установлен ли определенный компонент (например Macromedia Flash), можно следующим образом:
<html> <head> <title>VML test</title> <script language="JavaScript" type="text/javascript"> <!-- var VMLsupport = false; var Flashsupport = false; //--> </script> </head> <body> <IE:CLIENTCAPS ID="oClientCaps" /> <script language="JavaScript" type="text/javascript"> <!-- oClientCaps.style.behavior = "url(#default#clientCaps)"; if( oClientCaps.isComponentInstalled( "{10072CEC-8CC1-11D1-986E-00A0C955B42F}", "ComponentID" ) ) VMLsupport = true; if( oClientCaps.isComponentInstalled( "{D27CDB6E-AE6D-11CF-96B8-444553540000}", "ComponentID" ) ) Flashsupport = true; //--> </script> </body> </html>
В этом коде переменные VMLsupport - это наличие поддержки VRML, а FlashSupport - соответственно flash. Проверять значения установленных компонентов нужно с помощью ComponentID, который вы можете посмотреть у себя в системном реестре.
Наиболее популярные ComponentID:
VRML: {10072CEC-8CC1-11D1-986E-00A0C955B42F} Flash: {D27CDB6E-AE6D-11CF-96B8-444553540000} Address Book: {7790769C-0471-11D2-AF11-00C04FA35D02} Direct Animation: {283807B5-2C60-11D0-A31D-00AA00B92C03} Direct Animation Java Classes: {4F216970-C90C-11D1-B5C7-0000F8051515} Dynamic HTML Data Binding: {9381D8F2-0288-11D0-9501-00AA00B911A5} Dynamic HTML Data Binding for Java: {4F216970-C90C-11D1-B5C7-0000F8051515} Net Meeting: {44BBA842-CC51-11CF-AAFA-00AA00B6015B} Outlook Express: {44BBA840-CC51-11CF-AAFA-00AA00B6015C} Microsoft virtual machine: {08B0E5C0-4FCB-11CF-AAA5-00401C608500} Visual basic scripting support: {4F645220-306D-11D2-995D-00C04F98BBC9}
Также можно выяснить версию инсталлированных компонентов функцией:
oClientCaps.getComponentVersion( "{D27CDB6E-AE6D-11CF-96B8-444553540000}", "ComponentID" );
Или сравнить версии компонентов:
if( oClientCaps.compareVersions( version, "5,0,18,1024" ) == 0 )
Где version - полученный ранее номер версии, строка цифр, разделенных запятой, - сравниваемый номер версии. Функция возвращает ноль, если значения эквивалентны, -1, если значение меньше необходимого, +1, если значение больше.
Примечание: код работает только в Internet Explorer