Abrir una nueva ventana usando Javascript

Tu ayuda me ha sido de gran utilidad, pero ahora estoy intentando de pasarle a la función también los parámetros de ancho y alto y no me funciona, a ver si me puedes decir algo:

<html>
    <head><script language="JavaScript">
        function AbreVentana(nombre,alto,ancho) {
            window.open(nombre, "_blank", "toolbar=no,menubar=no,directories=no,status=no,resizable=no,location=no,scrollbars=no,height=alto,width=ancho")
        }
        </script>
        <title></title>
    </head>
    <body topmargin="0" marginheight="0">
        <p><a HREF="javascript:AbreVentana('http://www.todoexpertos.com/','300','300');">Ventana Nueva</a> </p>
    </body>
</html>

Al pasarle el 300 y 300 habré la ventana pero si vuelvo a intentarlo con otros parámetros distintos la vuelve a abrir con las mismas dimensiones anteriores.

3

3 Respuestas

27.075 pts.

Solo hay que cambiar pocas cosas. A utilizar las variables (como alto y ancho) en una función, nunca se ponen entre comillas. Entonces cambiate el función para que sea así:

<script language="JavaScript">
    function AbreVentana(nombre,alto,ancho) {
        window.open(nombre,"_blank","toolbar=no,menubar=no,directories=no,status=no,resizable=no,location=no,scrollbars=no,height="+alto+",width="+ancho)
    }
</script>

Y ya funciona.

5.975 pts.

Te paso la versión corregida, y esta versión te centra la ventana en la pantalla:

<html>
    <head>
        <script language="JavaScript">
        function AbreVentana(nombre,alto,ancho) {
            posizq = 0
            if (screen) {
                posizq = (screen.width-ancho)/2
                posarriba = (screen.height-alto)/2
            }
            ventana= window.open(nombre, '', 'toolbar=no,menubar=no,directories=no,status=no,resizable=no,location=no,scrollbars=no,height='+alto+',width='+ancho+',left='+posizq+',top='+posarriba)
        }
        </script>
        <title></title>
    </head>
    <body topmargin="0" marginheight="0">
        <p><a HREF="javascript:AbreVentana('http://www.todoexpertos.com/','300','300');">Ventana Nueva</a></p>
    </body>
</html>
10.500 pts.

No te funciona porque estás usando mal los parámetros.

Cuando creas la ventana el navegador no interpreta "alto" y "ancho" como variables sino como strings dado que están dentro del mismo string que el parámetro de la ventana.

Prueba con esto:

function AbreVentana(nombre,alto,ancho) {
    window.open(nombre, "_blank", "toolbar=no,menubar=no,directories=no,status=no,resizable=no,location=no, scrollbars=no,height=" + alto + ",width=" + ancho)
}

Fíjate en que ahora las variables "alto" y "ancho" ya no están dentro del string, de manera que el intérprete de Javascript traducirá las variables por su valor y lo concatenará al string que quieres pasar como parámetro a la función OPEN.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas