Проверить установлен ли определенный компонент (например 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