Mi problema reside en que quiero redefinir el método windows.open para que no abra ninguna ventana cuando no recibe ningúna url y que se comporte de la manera habitual cuando si la recibe.
¿Es esto posible?.
Gracias.
| ||||
Hola Vice, Bienvenido a los foros ![]() Aunque no creo que se pueda, te voy a indicar una forma de "fabricar" algo así desde netscape (en explorer no sé hacerlo)... ![]() Código PHP: ![]() Otra forma menos compleja (o tal vez más "corriente") es hacer una función abrir, con esos parámetros, y desde ahí hacer el open... function abrir(pag, ventana, parms) { if (pag != "") window.open(pag, ventana, parms) } Espero que te sirva... Saludos ![]() } |
| ||||
![]() Gracias por tu pronta respuesta. Pero, siempre hay un pero, ![]() Una aproximación sería esto: function open(URL, nombre, caracteristicas ) { if ( URL.length > 1 ) { window.open(URL,nombre,caracteristicas); } else { return true; } } pero tiene el problema que es una función recursiva y da un error de desbordamiento de pila cuando se pasa una url. Funciona perfectamente como quiero cuando no hay ningún dato en el parámetro URL. ¿Cuál era la idea que tenía en mente?, pues ver si se podía hacer algo al estilo de la herencia de clases, en las cuales puedes redefinir un método en la clase hija, pero puedes, en cualquier momento, indicar que se reutilice el código original.
__________________ Estoy contagiado de Generación-I Última edición por Vice; 01/08/2003 a las 15:02 |
| ||||
Bueno, siguiendo con la investigación de este tema he encontrado una forma para que me funciones sobre Netscape, pero no sobre Internet Explorer, ¿alguien me puede ayudar con esto?: saveOpen=window.open; function open(URL, nombre, caracteristicas ) { if ( URL.length > 1 ) { saveOpen(URL,nombre,caracteristicas); } else { return true; } } |
| ||||
![]() ¿Puede alguien decirme por qué las instrucciones anteriores funcionan diferente en Netscape y en IE? ![]() Cuando se ejecuta en Netscape la ventana se abre normalmente aplicando los formatos, sin embargo cuando lo ejecuto sobre un IE aparece una ventana normal y corriente del explorador sin aplicar las características. Además, en IE, antes de la ventana, aparece un error de "stack overflow". |
| ||||
Hola otra vez: La parte netscape funciona correctamente, ya que realmente redefine "Window.open" Código PHP: ![]() Para explorer, también tengo problemas... probé también lo que puso tunait (¡Hola! ![]() Tal vez sea mejor hacer el chequeo antes de llamar a la función. Es curioso que cada vez veo más cosas funcionando mejor en netscape que en explorer ![]() Saludos ![]() |
| ||||
Al final he conseguido que funcione, con algo de ayuda, como quería. Os pongo como queda el asunto para quien le interese: Código PHP:
__________________ Estoy contagiado de Generación-I |