Google Chrome - Foro de ayuda

Problema con ampersand & desde Javascript

jcidaragones
24/08/10 15:33
Versión de Google Chrome: 5.0.375.127
Sistema Operativo: Windows 7
Mensaje de error: No hay mensaje
Problema:
Estoy testeando una página web que estoy desarrollando basada en Wordpress, tengo un fichero JS con la siguiente función:

function redireccionar(lang){
        if(lang != null)
        {
                window.location ="http://paginaweb/?page_id=47&lang="+lang;
        }else window.location ="http://paginaweb/?page_id=47";
}

La página web que ejecuta esta función tiene en el head la llamada al fichero JS. Para hacer la llamada a la función utilizo el siguiente código de PHP:
<?php echo "<script> redireccionar('es'); </script>"; ?>

La cuestión es que si ejecuto la página con IE8 la redirección es correcta, es decir en la barra de dirección sale: http://paginaweb/?page_id=47&lang=es, si ejecuto la función con Chrome el &amp; lo deja tal cual y por tanto el parámetro lang no pasa, es decir en la barra de dirección sale: http://paginaweb/?page_id=47&amp;lang=es.

He probado con el & y con el &amp; y pasa exactamente lo mismo.

Se trata de un problema de código o es cosa del Chrome?

Jesús

Respuestas (2)

Dennis Tobar
25/08/10 7:33
Hola... 

¿Y si modificas?

window.onload = redireccionar(lang) 

en tu tag de script.

Sé que quizás no sea el error, pero creo que "te optimizará" en algo el código :P. Con respecto al &, investigo un poco y te aviso :D
jcidaragones
25/08/10 9:03
La verdad que no he probado tu solución pero finalmente he encontrado la solución para que Chrome, Firefox y Opera funcionen correctamente... En el fichero del script de la función hay que poner el //<![CDATA[      //]]>, entonces todo funciona correctamente:

//<![CDATA[
function redireccionar(lang){
    if(lang != null)
    {
        window.location ="http://paginaweb/?page_id=47&lang="+lang;
    }else window.location ="http://paginaweb/?page_id=47";
}
//]]>

Gracias igualmente
Jesús