deteccion de plugins con javascript

lvictorp
29 de Septiembre del 2004
necesitaria que alguien me mandara codigo de como detectar plugin de un navegador, he probado con 'navigator.plugins' y solo funciona en netscape pero no en explorer 6.0 porque siempre devuelve el array vacio.gracias

seldon
29 de Septiembre del 2004
has de utilizar VBScript, insertandolo en el codigo de javascript.
Te envio un ejemplo:

<script>
function detectWindowsMedia(redirectURL, redirectIfFound) {
pluginFound = detectPlugin('Windows Media');

// si no se encuentra al plugin se intenta por VisualBasic
if(!pluginFound && detectableWithVB) {
pluginFound = detectActiveXControl('MediaPlayer.MediaPlayer.1');
}

return redirectCheck(pluginFound, redirectURL, redirectIfFound);
}

//m茅todo de comprobacion v谩lido para cualquier navegador menos MSIE.
function detectPlugin() {

// recoge argumentos del m茅todo
var daPlugins = detectPlugin.arguments;
var pluginFound = false;

// si se detectan plugins por javascript
if (navigator.plugins && navigator.plugins.length > 0) {
var pluginsArrayLength = navigator.plugins.length;

// para cada plugin
for (pluginsArrayCounter=0; pluginsArrayCounter < pluginsArrayLength; pluginsArrayCounter++ ) {
var numFound = 0;

//Se compara cada uno de los plugins encontrados con los recibidos por par谩metro
for(namesCounter=0; namesCounter < daPlugins.length; namesCounter++) {
//La comparaci贸n se efectua por nombre o descripci贸n
if( (navigator.plugins[pluginsArrayCounter].name.indexOf(daPlugins[namesCounter]) >= 0) ||
(navigator.plugins[pluginsArrayCounter].description.indexOf(daPlugins[namesCounter]) >= 0) ) {
//plugin encontrado
numFound++;
}
}
// si el plugin encontrado es el 煤ltimo
if(numFound == daPlugins.length) {
pluginFound = true;
break;
}
}
}
return pluginFound;
} // fin de detectPlugin()

// C贸digo VBScript para MSIE Windows.Se definen dos metodos para la busqueda de plug-ins.
if ((navigator.userAgent.indexOf('MSIE') != -1) && (navigator.userAgent.indexOf('Win') != -1)) {
document.writeln('<script language="VBscript">');

//document.writeln('\' A partir de la version 2 de VBScript se puede hacer la detecci贸n de plug-ins.');
document.writeln('detectableWithVB = False');
document.writeln('If ScriptEngineMajorVersion >= 2 then');
document.writeln(' detectableWithVB = True');
document.writeln('End If');

//document.writeln('\'esta funcion detecta la mayoria de los plug-ins');
document.writeln('Function detectActiveXControl(activeXControlName)');
document.writeln(' on error resume next');
document.writeln(' detectActiveXControl = False');
document.writeln(' If detectableWithVB Then');
document.writeln(' detectActiveXControl = IsObject(CreateObject(activeXControlName))');
document.writeln(' End If');
document.writeln('End Function');

//document.writeln('\'esta funcion es para el plug-in de QuickTime');
document.writeln('Function detectQuickTimeActiveXControl()');
document.writeln(' on error resume next');
document.writeln(' detectQuickTimeActiveXControl = False');
document.writeln(' If detectableWithVB Then');
document.writeln(' detectQuickTimeActiveXControl = False');
document.writeln(' hasQuickTimeChecker = false');
document.writeln(' Set hasQuickTimeChecker = CreateObject("QuickTimeCheckObject.QuickTimeCheck.1")');
document.writeln(' If IsObject(hasQuickTimeChecker) Then');
document.writeln(' If hasQuickTimeChecker.IsQuickTimeAvailable(0) Then ');
document.writeln(' detectQuickTimeActiveXControl = True');
document.writeln(' End If');
document.writeln(' End If');
document.writeln(' End If');
document.writeln('End Function');

//Se cierra as铆 el <script> de VBScript para evitar que se solape con el <script> de javascript
document.writeln('</scr' + 'ipt>');