redireccion en funcion del navegador
Buenas....
Tengo un problemilla...
Quiero redireccionar una pagina en funcion del navegador del usuario y me funciona con todos los navegadores excepto con el opera que me llama siempre a la pagina que tengo marcada para el explore y claro esta no me vale porque tengo un Chromeless y el opera no me lo abre.
En la Head de la pagina tengo el siguiemte codigo que generé por medio del dreamweaver... y no tengo mucha idea...y no sé cual puede ser el fallo, en resumen no sé si lo tengo bien
<SCRIPT LANGUAGE = "JavaScript">
function MM_checkBrowser(NSvers,NSpass,NSnoPass,IEvers,IEpass,IEnoPass,OBpass,URL,altURL) { //v4.0
var newURL='', verStr=navigator.appVersion, app=navigator.appName, version = parseFloat(verStr);
if (app.indexOf('Netscape') != -1) {
if (version >= NSvers) {if (NSpass>0) newURL=(NSpass==1)?URL:altURL;}
else {if (NSnoPass>0) newURL=(NSnoPass==1)?URL:altURL;}
} else if (app.indexOf('Microsoft') != -1) {
if (version >= IEvers || verStr.indexOf(IEvers) != -1)
{if (IEpass>0) newURL=(IEpass==1)?URL:altURL;}
else {if (IEnoPass>0) newURL=(IEnoPass==1)?URL:altURL;}
} else if (OBpass>0) newURL=(OBpass==1)?URL:altURL;
if (newURL) { window.location=unescape(newURL); document.MM_returnValue=false; }
}
//-->
</SCRIPT>
Espero que me entendieseis...
Gracias mil por adelantado...
Un bico
malizia
mirate esta página
http://www.via-modem.com/javascriptfacil/13/008.shtml
es un generador de código para redireccionar; igual te sirve
Saludos
Usuario desconocido
Ya lo he probado y me pasa lo mismo con el opera..., pero gracias. Seguiré mirando...
Usuario desconocido
el problemilla esta en que en opera navigator.appName te dice que es un MS Explorer(por lo menos en la version que tengo yo 7.23), quiza puedas probar a identificar por navigator.userAgent que hay si que te dice que es un opera
malizia
me han dicho que eso puede ser un fallo del opera, que a veces no funciona bien con Javascript. En ese caso, la unica manera que tienes de redireccionar es poniendo un boton en la página inicial para los que tengan opera.
Usuario desconocido
no estoy de acuerdo en que esa sea la unica solucion.
Si que lo puedes saber por medio de navigator.userAgent, por lo menos a mi si que me funciona.
<code>
function navegadorOpera() {
if ( navigator.userAgent.indexOf('Opera') != -1 ) alert("estas en un opera!");
}
onload = navegadorOpera;
</code>
malizia
entonces perfecto
dirarck
No es que yo sepa nada de javascript, pero en un momento tube que hacer uso de este script, te lo he modificado para que lo puedas adaptar a tus necesidades, como ves es sencillo, lo único que falta es añadir el método location para realizar la redirección. No creo que este de fallo, y pienso que seguramente habrá algo mejor, pero esto es lo que uso yo :P.
var opera = (navigator.userAgent.toLowerCase().indexOf('opera') != -1);
if (opera) {
redirecciona aki
}
meddle
lo mejor (aparte de no usar browser sniffer sino object sniffer - es decir no redireccionar por navegador sino por las implementaciones de cada funcion) es hacer:
<code>if (window.opera) {...}</code>
Si ademas quieres separar Op6 de Op7:
<code>if(!document.addEventListener && window.opera) // para op6
if(document.addEventListener && window.opera) // para op7</code>
Otra vez haz un busca, esto lo puse no hace ni dos semanas ;)
Usuario desconocido
Gracias mil. ya me funciona. Use lo que mencionó meddle.
Bicos