
marjuanm
Zeta
Programador
Verificación en dos pasos activada
Que tal, les comparto una función para detectar si un plugin en especial (vía mime) está instalado o no en el navegador web, probado en firefox e internet explorer:
<html>
<head>
<script language="JavaScript">
<!--
//thanks to Código de JavaScript - Simular la función Trim() en JavaScript
function trim(str)
{
var i;
if(str != null)
{
for(i=0; i<str.length; i++)
{
if(str.charAt(i)== " ")
str = str.substring(i+1, str.length);
else
break;
}
for(i=str.length-1; i>=0; i=str.length-1)
{
if(str.charAt(i)== " ")
str = str.substring(0,i);
else
break;
}
}
else
str = "";
return str;
}
function replaceAll(str, strtofind, strtoreplace)
{
var pos, found, str1, str2;
if(trim(str) == "")
return "";
else
{
found = true;
while(found == true)
{
pos = str.indexOf(strtofind);
if(pos >= 0)
found = true;
else
found = false;
if(found == true)
{
str1 = str.substring(0, pos);
str2 = str.substring(pos + strtofind.length, str.length);
str = str1 + strtoreplace + str2;
}
}
return str;
}
}
//thank to Javascript and plug-ins
function existspluginsinstalledalready(mime)
{
var i, plugin, myarray, found = false;
if(trim(mime) == "")
return false;
else
{
for(i=0; i < navigator.mimeTypes.length; i++)
{
if(trim(mime).indexOf("/") > 0)
{
myarray = trim(mime).split("/");
mime = trim(myarray[1]);
}
try
{
plugin = trim(navigator.mimeTypes.type);
}
catch(e)
{
plugin = "";
}
if(trim(plugin).indexOf("/") > 0)
{
myarray = trim(plugin).split("/");
plugin = trim(myarray[1]);
}
mime = replaceAll(trim(mime).toLowerCase(), "x-", "");
mime = replaceAll(trim(mime).toLowerCase(), "-", " ");
plugin = replaceAll(trim(plugin).toLowerCase(), "x-", "");
plugin = replaceAll(trim(plugin).toLowerCase(), "-", " ");
//alert("mime=" + mime + "\nplugin=" + plugin);
if(trim(mime).toLowerCase().indexOf(trim(plugin).toLowerCase()) >= 0 || trim(plugin).toLowerCase().indexOf(trim(mime).toLowerCase()) >= 0)
{
found = true;
break;
}
}
return found;
}
}
-->
</script>
</head>
<body>
<script language="JavaScript">
alert("plugin para archivos SWF = " + existspluginsinstalledalready("application/x-shockwave-flash"));
alert("plugin para archivos MP3 = " + existspluginsinstalledalready("audio/mpeg3"));
alert("plugin para archivos AVI = " + existspluginsinstalledalready("video/x-msvideo"));
alert("plugin para archivos 3GP = " + existspluginsinstalledalready("video/3gpp"));
alert("plugin para archivos PDF = " + existspluginsinstalledalready("application/pdf"));
alert("plugin para archivos XDB = " + existspluginsinstalledalready("application/xdb"));
</script>
</body>
</html>
<html>
<head>
<script language="JavaScript">
<!--
//thanks to Código de JavaScript - Simular la función Trim() en JavaScript
function trim(str)
{
var i;
if(str != null)
{
for(i=0; i<str.length; i++)
{
if(str.charAt(i)== " ")
str = str.substring(i+1, str.length);
else
break;
}
for(i=str.length-1; i>=0; i=str.length-1)
{
if(str.charAt(i)== " ")
str = str.substring(0,i);
else
break;
}
}
else
str = "";
return str;
}
function replaceAll(str, strtofind, strtoreplace)
{
var pos, found, str1, str2;
if(trim(str) == "")
return "";
else
{
found = true;
while(found == true)
{
pos = str.indexOf(strtofind);
if(pos >= 0)
found = true;
else
found = false;
if(found == true)
{
str1 = str.substring(0, pos);
str2 = str.substring(pos + strtofind.length, str.length);
str = str1 + strtoreplace + str2;
}
}
return str;
}
}
//thank to Javascript and plug-ins
function existspluginsinstalledalready(mime)
{
var i, plugin, myarray, found = false;
if(trim(mime) == "")
return false;
else
{
for(i=0; i < navigator.mimeTypes.length; i++)
{
if(trim(mime).indexOf("/") > 0)
{
myarray = trim(mime).split("/");
mime = trim(myarray[1]);
}
try
{
plugin = trim(navigator.mimeTypes.type);
}
catch(e)
{
plugin = "";
}
if(trim(plugin).indexOf("/") > 0)
{
myarray = trim(plugin).split("/");
plugin = trim(myarray[1]);
}
mime = replaceAll(trim(mime).toLowerCase(), "x-", "");
mime = replaceAll(trim(mime).toLowerCase(), "-", " ");
plugin = replaceAll(trim(plugin).toLowerCase(), "x-", "");
plugin = replaceAll(trim(plugin).toLowerCase(), "-", " ");
//alert("mime=" + mime + "\nplugin=" + plugin);
if(trim(mime).toLowerCase().indexOf(trim(plugin).toLowerCase()) >= 0 || trim(plugin).toLowerCase().indexOf(trim(mime).toLowerCase()) >= 0)
{
found = true;
break;
}
}
return found;
}
}
-->
</script>
</head>
<body>
<script language="JavaScript">
alert("plugin para archivos SWF = " + existspluginsinstalledalready("application/x-shockwave-flash"));
alert("plugin para archivos MP3 = " + existspluginsinstalledalready("audio/mpeg3"));
alert("plugin para archivos AVI = " + existspluginsinstalledalready("video/x-msvideo"));
alert("plugin para archivos 3GP = " + existspluginsinstalledalready("video/3gpp"));
alert("plugin para archivos PDF = " + existspluginsinstalledalready("application/pdf"));
alert("plugin para archivos XDB = " + existspluginsinstalledalready("application/xdb"));
</script>
</body>
</html>