deteccion de plugins con javascript
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
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>');
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>');
