Redirigir el explorador una vez sólo mediante Javascript

  • wpas
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Jul 12, 2010
  • Mensajes: 214
  • Loc: Canada
  • Status: Offline

Nota Enero 30th, 2012, 11:49 am

Hola a todos

En mi sitio Web, tengo un problema de compatibilidad cuando alguien accede a través del explorador de Microsofte Internet. Este problema existe sólo para una función concreta. Para otros navegadores como Google Chrome, Fire fox y Safari, no hay ningún problema.

Enviado un javascript que detecta el nombre del explorador y, a continuación, los redirige a otra página web. En esta página web, el usuario hace un par de acciones para hacer un trabajo alrededor. Al final hace clic en un botón que lleva de vuelta a mi página de inicio.

Como puede ver, cuando el usuario hace clic en el botón para volver a la página principal, él es redirigido nuevamente volver a la página vienen desde Internet Explorer se detecta. El usuario termina en un bucle infinito.

Lo que me gustaría hacer es la primera vez que los usuarios de Internet Explorer se detecta, se envían a la otra página web. Cuando el usuario hace clic en el botón y vuelve a la página de inicio, no debería ser redirigido nuevamente vuelta a la página.

He leido por ahi que javascript puede utilizar cookies para determinar esto, pero no estoy seguro de cómo hacerlo o si incluso puede hacerse.

Agradecería alguna sugerencia sobre cómo redirigir el navegador del usuario una sola vez.

Gracias
http://www.schembrionics.com
The Ultimate Solutions Center
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Enero 30th, 2012, 11:49 am

  • wpas
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Jul 12, 2010
  • Mensajes: 214
  • Loc: Canada
  • Status: Offline

Nota Febrero 13th, 2012, 10:56 am

Hola a todos

¿Alguien tiene alguna sugerencia.
Realmente se agradece

Gracias
http://www.schembrionics.com
The Ultimate Solutions Center
  • typhon
  • Guru
  • Guru
  • Avatar de Usuario
  • Registrado: Oct 25, 2004
  • Mensajes: 1294
  • Loc: Memphis, Tn
  • Status: Offline

Nota Febrero 13th, 2012, 6:41 pm

Solucionar rápido. Tener la página de "detección" la página de inicio. tienen una redirección para todos los navegadores. Si utilizan IE luego enviarlos al trabajo alrededor de las páginas, si no enviar al resto del sitio. ¿Luego en el trabajo alrededor de las páginas, en lugar de enviar ellos de vuelta a la página principal de enviarles al resto del sitio .. hace que cualquier sentido?
-- Never hold a cat and a hairdryer at the same time.
  • wpas
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Jul 12, 2010
  • Mensajes: 214
  • Loc: Canada
  • Status: Offline

Nota Febrero 14th, 2012, 10:50 am

Hola tifón

Gracias por la respuesta

El problema es que tengo un sitio Web Joomla CMS.
Utiliza una plantilla que es común para todos mis páginas Web.

Esto significa que no importa dónde enviar al visitante, distinta de la página de solución que es externo, es en esencia directamente o indirectamente en mi página de inicio donde todos los menús están contenidos y se muestran en cada página web.

Por ahora he añadido un enlace manual asesorando a los usuarios de Internet Explorer navegador haga clic en para resolver el problema. Lo que no me gusta es que el visitante no puede hacer clic en el enlace para ir a la página de la solución, razón por la cual yo esperaba usar detector de navegador en una base de tiempo.
http://www.schembrionics.com
The Ultimate Solutions Center
  • Zealous
  • Guru
  • Guru
  • Avatar de Usuario
  • Registrado: Abr 15, 2011
  • Mensajes: 1194
  • Loc: Sydney
  • Status: Offline

Nota Febrero 14th, 2012, 7:25 pm

A continuación, tiene un detector de IE y forzar el uso de firefox para cargar el sitio. IE no es compatible con este sitio web utiliza firefox:P
  • wpas
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Jul 12, 2010
  • Mensajes: 214
  • Loc: Canada
  • Status: Offline

Nota Febrero 14th, 2012, 9:12 pm

Hola

Gracias por su respuesta

IE trabajar en mi sitio Web, es sólo una de las características que tiene problemas.

Aunque hay muchas quejas contra la IE, todavía es uno de los más populares navegadores utilizados. Si dejo de IE de acceder al sitio Web, entonces me va ser volviendo lejos muchos clientes potenciales.
http://www.schembrionics.com
The Ultimate Solutions Center
  • Zealous
  • Guru
  • Guru
  • Avatar de Usuario
  • Registrado: Abr 15, 2011
  • Mensajes: 1194
  • Loc: Sydney
  • Status: Offline

Nota Febrero 14th, 2012, 9:45 pm

Que es un problema, a continuación, eh......todavía creo que no es decir se utiliza mosted y sólo porque está predeterminado para windows todavía piensa mayoría son Firefox y safari. De todas formas es una cuestión diferente.

Pero hice algunos Google-Fu y echar un vistazo y ver qué piensa acerca de cómo agregar algunos de este código a la cabecera de la plantilla por lo que será detectado en todas las páginas. Pero sí esto las costuras como la solución perfecta y mirando las costuras de código como un simple agregan demasiado.

http://wwwpunto netmechanic punto com/news/vol3/javascript_no15.htm

Dime cómo ir con ella.
  • wpas
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Jul 12, 2010
  • Mensajes: 214
  • Loc: Canada
  • Status: Offline

Nota Febrero 14th, 2012, 10:30 pm

Hola

Como ya había mencionado antes, la plantilla se utiliza para todas las páginas Web.

Me había puesto un script similar en mi plantilla.

Cuando un visitante visita mi página web principal y tiene IE, son redirigidos a un trabajo externo alrededor de las páginas.

Luego hagan clic en un vínculo que lleva de vuelta.

Una vez que vuelva, IE se detecta y se envían a los trabajos alrededor de las páginas. Puesto que el script se encuentra en la plantilla, que realmente no importa qué página enviar a y le redirigirá a la página de solución.

Lo que estoy esperando es un script que detecta IE y envía visitantes a trabajar alrededor de las páginas. Cuando hagan clic en regresar, el script va a determinar que había sido en la página de inicio antes y así no redirigirá les vuelve a la página de solución, causando así un bucle infinito.
http://www.schembrionics.com
The Ultimate Solutions Center
  • wpas
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Jul 12, 2010
  • Mensajes: 214
  • Loc: Canada
  • Status: Offline

Nota Febrero 15th, 2012, 12:34 pm

Revisé alrededor para ver lo que era el navegador más popular y encontró las siguientes estadísticas de enero de 2012:

Firefox: 37.1 %
Cromo & #058; 35,3 %
IE: 20,1 %
Safari: 4,3 %
Ópera: 2,4 %

Si consideramos estas estadísticas, entonces IE es todavía un navegador algo popular.
http://www.schembrionics.com
The Ultimate Solutions Center
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de Usuario
  • Registrado: Dic 20, 2002
  • Mensajes: 8922
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Nota Febrero 15th, 2012, 1:25 pm

Hola Wpas,

Cuando empecé a leer el hilo, que era mi idea inicial para resolver su problema: cookies. Básicamente todo lo que necesita hacer es primera prueba si una determinada cookie existe, y si no es así y si el navegador coincide con tu navegador de problema, entonces podría redirigir. Una vez que ha fijado el problema un nuevo se establecería la cookie y, a continuación, se repite el proceso. Ya que ahora existe la cookie, no serían redirigir la próxima vez que estén en su página de inicio.

Absolutamente pueden establecer cookies mediante JavaScript. ¿Está utilizando cualquier marcos JavaScript? Utilizar el marco de jQuery, y esto puede hacerse fácilmente con jQuery. Si no todavía puede usar Javascript regular así, pero hay un ejemplo con jQuery sobre cómo establecer y leer cookies.

Por lo que permite decir que completen la acción. A continuación, puede definir una cookie denominada "fixCompleted":

JAVASCRIPT Código: [ Select ]
$.cookie("fixCompleted", "true");


Entonces podría hacer una prueba rápida para ver si realmente existe la cookie:

JAVASCRIPT Código: [ Select ]
alert( $.cookie("fixCompleted") );


Si todo está funcionando a continuación, puede quitar esa línea y simplemente hacer una prueba para la página de inicio así:

JAVASCRIPT Código: [ Select ]
if($.cookie("fixCompleted") != 'true') { //do redirection }


Si no es cierto, a continuación, hacen una redirección. Esto es todo simplificado, pero esperemos que le da la idea.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • wpas
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Jul 12, 2010
  • Mensajes: 214
  • Loc: Canada
  • Status: Offline

Nota Febrero 17th, 2012, 9:56 am

Hola

Gracias por su respuesta

Estoy teniendo problemas para configuración y comprobación de cookie.

Para establecer la cookie usar lo siguiente:

Código: [ Select ]
<SCRIPT LANGUAGE = JAVASCRIPT>
cookie.set('msie', 'redirect', 0); // last argument is number of days until expiry.
</script>
  1. <SCRIPT LANGUAGE = JAVASCRIPT>
  2. cookie.set('msie', 'redirect', 0); // last argument is number of days until expiry.
  3. </script>


A ver si la cookie se establece utilizar lo siguiente:

Código: [ Select ]
<SCRIPT LANGUAGE = JAVASCRIPT>
alert( cookie.get('msie'));
</script>
  1. <SCRIPT LANGUAGE = JAVASCRIPT>
  2. alert( cookie.get('msie'));
  3. </script>


Cuando accede a la página web, que esperaba un mensaje pero sale nada.

Me falta algo o tienen un error sobre cómo hacerlo.
Estoy utilizando solo Javascript

Gracias
http://www.schembrionics.com
The Ultimate Solutions Center
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de Usuario
  • Registrado: Dic 20, 2002
  • Mensajes: 8922
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Nota Febrero 17th, 2012, 10:32 am

Hola Wpas,

Estoy familiarizado con la función cookie.set. ¿Tienes otra función o biblioteca que declara esto? Normalmente si sólo se utiliza JavaScript regular, creo sería establecer una cookie así:

JAVASCRIPT Código: [ Select ]
document.cookie = "bunch of stuff"


Creo que la biblioteca YUI le permite utilizar una función llamada Cookie.set, pero si sólo se utiliza JavaScript regular, entonces esa función no funcionaría y necesita hacer más como lo mencioné anteriormente.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • wpas
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Jul 12, 2010
  • Mensajes: 214
  • Loc: Canada
  • Status: Offline

Nota Febrero 17th, 2012, 10:48 am

Hola

Gracias por tu respuesta

Vuelve a intentar lo siguiente.

Configuración de las cookies:

Código: [ Select ]
<script type="text/javascript">
document.cookie = "msie";
</script>
  1. <script type="text/javascript">
  2. document.cookie = "msie";
  3. </script>


comprobación de cookies:

Código: [ Select ]
<script type="text/javascript">
alert( document.cookie('msie'));
</script>
  1. <script type="text/javascript">
  2. alert( document.cookie('msie'));
  3. </script>



Todavía no funciona
http://www.schembrionics.com
The Ultimate Solutions Center
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de Usuario
  • Registrado: Dic 20, 2002
  • Mensajes: 8922
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Nota Febrero 17th, 2012, 11:52 am

Hola Wpas,

El ejemplo que te di fue un ejemplo rudimentario, que todavía tiene que hacer mucho más que:

JAVASCRIPT Código: [ Select ]
    <script type="text/javascript">
    document.cookie = "msie";
    </script>
  1.     <script type="text/javascript">
  2.     document.cookie = "msie";
  3.     </script>


establecer una cookie con Javascript regular. Con jQuery es muy sencillo como había demostrado lo anterior, pero con Javascript va a tener que hacer algo más porque una cookie contiene estos elementos:

  • Un par de nombre y valor
  • Fecha de caducidad
  • Dominio y ruta de acceso

Cada cookie tiene un par de nombre y valor que contiene la información real. Es el nombre de la cookie le permite buscar más tarde, buscará este nombre al leer la información de la cookie.

Cada cookie tiene una fecha de caducidad, después de lo cual es trashed. Si no se especifica la fecha de caducidad que la cookie es trashed al cerrar el navegador.

Cada cookie también tiene un dominio y una ruta de acceso. El dominio indica al explorador que dominio debe enviarse la cookie. Si no se especifica, se convierte en el dominio de la página que establece la cookie.

Así que en el ejemplo anterior, nunca especificó un par de valor de nombre, una fecha de caducidad, o un dominio y ruta de acceso. No sólo debe su cookie contiene estos datos, pero tiene que ser formateados en el correcto camino demasiado así:

JAVASCRIPT Código: [ Select ]
document.cookie = 'var=value; expires=Fri, 17 Feb 2012 06:42:00 UTC; path=/';


Normalmente cuando escribes tu Javascript, probablemente deseará calcular dinámicamente la fecha, es decir tomando la fecha actual a través de una función de JavaScript y, a continuación, agregar un número de días o segundos a esa fecha y luego dinámicamente colocando en la cadena de document.cookie anterior. Tenga en cuenta que la sintaxis anterior es una sintaxis muy estricta, por lo que si pierdes un punto y coma donde uno pertenece no funcionará. El formato es siempre así:

Primero el par nombre / valor (var = valor)
Luego un punto y coma y un espacio
A continuación la fecha de caducidad en el formato correcto (caduca = viernes, 17 de febrero de 2012 6:42 UTC)
A continuación, otro punto y coma y un espacio
Luego la ruta (path = /)

En su lugar puede crear algunas funciones que esto hará más fácil:

JAVASCRIPT Código: [ Select ]
function createCookie(name,value,days) {
   if (days) {
      var date = new Date();
      date.setTime(date.getTime()+(days*24*60*60*1000));
      var expires = "; expires="+date.toGMTString();
   }
   else var expires = "";
   document.cookie = name+"="+value+expires+"; path=/";
}
 
function readCookie(name) {
   var nameEQ = name + "=";
   var ca = document.cookie.split(';');
   for(var i=0;i < ca.length;i++) {
      var c = ca[i];
      while (c.charAt(0)==' ') c = c.substring(1,c.length);
      if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
   }
   return null;
}
 
function eraseCookie(name) {
   createCookie(name,"",-1);
}
  1. function createCookie(name,value,days) {
  2.    if (days) {
  3.       var date = new Date();
  4.       date.setTime(date.getTime()+(days*24*60*60*1000));
  5.       var expires = "; expires="+date.toGMTString();
  6.    }
  7.    else var expires = "";
  8.    document.cookie = name+"="+value+expires+"; path=/";
  9. }
  10.  
  11. function readCookie(name) {
  12.    var nameEQ = name + "=";
  13.    var ca = document.cookie.split(';');
  14.    for(var i=0;i < ca.length;i++) {
  15.       var c = ca[i];
  16.       while (c.charAt(0)==' ') c = c.substring(1,c.length);
  17.       if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  18.    }
  19.    return null;
  20. }
  21.  
  22. function eraseCookie(name) {
  23.    createCookie(name,"",-1);
  24. }


A continuación, simplemente podría establecer una cookie así:

JAVASCRIPT Código: [ Select ]
createCookie('var','value',30);


Luego de leer la cookie podría hacer algo como:

JAVASCRIPT Código: [ Select ]
alert(readCookie('var'));


Ya el nombre de la cookie de "var" tal como se establece anteriormente, que es por qué estoy pasando "var" a la función. Finalmente puede eliminar la cookie como esto entonces:

JAVASCRIPT Código: [ Select ]
eraseCookie('var');


Espero que ayude. Yo personalmente estaría recomendamos para empezar a utilizar una biblioteca de Javascript como jQuery, como la huella es muy pequeña y si usas un montón de Javascript a través de su sitio, encontrará que su vida será mucho más fácil, y en general usando mucho menos código que al final le ahorra realmente sobre cuánto JavaScript el usuario tiene que Descargar. Independientemente, si se prefiere la solución directa de JavaScript, esperemos que lo anterior le ayuda a establecer la cookie.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • wpas
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Jul 12, 2010
  • Mensajes: 214
  • Loc: Canada
  • Status: Offline

Nota Febrero 21st, 2012, 1:44 pm

Hola Bigwebmaster

Gracias por su respuesta.

Empecé a pensar en todo lo que dijo e hizo algunas investigaciones más sobre esto.
Tengo la impresión de los visitantes no les gusta ser redirigido cuando van a un sitio Web, así que he decidido mostrar un mensaje de alerta de javascript si el visitante tiene IE.
También puse una opción en mi sitio Web para permitir a los visitantes ir a la página de solución si ellos así lo desean.

He creado una página de web de muestra para probar que hizo lo siguiente:

Primero compruebe qué navegador está utilizando el visitante:

Código: [ Select ]
var browserName = navigator.appName;


Si el navegador es IE y existe una cookie denominada "msie" se muestra ningún mensaje.
Si no existe ninguna cookie, entonces se crea con expiración de 0 por lo que se elimina cuando se cierra el navegador.
Antes de que se crea la cookie, mostrar el mensaje de alerta si se detecta el IE.

Código: [ Select ]
if ((document.cookie.search(/(^|;)msie=/) > -1) && (browserName=="Microsoft Internet Explorer"))
{  
//do nothing
}
else
{  
document.cookie = "msie=true;max-age=" + 60 * 60 * 24 * 0; // 60 seconds to a minute, 60 minutes to an hour, 24 hours to a day, and 0 days.   

if (browserName=="Microsoft Internet Explorer")
{
alert("Welcome Internet Explorer User! \n Please Read The Message In Red, \n In The Left Column Of This Web Page");
}
else
{
//do nothing
}
}
  1. if ((document.cookie.search(/(^|;)msie=/) > -1) && (browserName=="Microsoft Internet Explorer"))
  2. {  
  3. //do nothing
  4. }
  5. else
  6. {  
  7. document.cookie = "msie=true;max-age=" + 60 * 60 * 24 * 0; // 60 seconds to a minute, 60 minutes to an hour, 24 hours to a day, and 0 days.   
  8. if (browserName=="Microsoft Internet Explorer")
  9. {
  10. alert("Welcome Internet Explorer User! \n Please Read The Message In Red, \n In The Left Column Of This Web Page");
  11. }
  12. else
  13. {
  14. //do nothing
  15. }
  16. }


Creó una página Web con el anterior código javascript y había probado con IE, Firefox, Chrome y Safari y parece estar funcionando bien. El mensaje de alerta se muestra sólo para IE y sólo una vez.

Le agradecería sus comentarios o sugerencias a mi solución.

Gracias
http://www.schembrionics.com
The Ultimate Solutions Center
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Febrero 21st, 2012, 1:44 pm

Publicar Información

  • Total de mensajes en este tema: 16 mensajes
  • Usuarios navegando por este Foro: Kurthead+1 y 138 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC