En defensa de showModalWindow

Probablemente la epoca en que era mas complicado desarrollar aplicaciones Web fue entre el 98 y el 2001, la guerra de los browsers estaba en su apogeo y las tecnologias para desarrollar salian a cada instante: ASP, ColdFusion, Servlets, PHP, Intrabuilder….

Era una epoca compleja, IE4 habia salido con fuerza introduciendo muchas novedades en cuanto al HTML, y claro infinidad de ejemplos de como usar esa nueva funcionalidad, de entre todas las palabras de moda entonces una sonaba con fuerza DHTML, entonces todos a desarrollar paginas dinamicas, con grandes efectos (mira!! sin usar Flash!), y por lo mismo herramientas especializadas para ello como el DreamWeaver.

Claro… con tanta novedad los problemas de compatiblidad que hubo en la epoca del Mosaic y Netscape (recuerdan el blink) pasaron a ser cosas de niños, muchas cosas que se veian bien bonito en IExplorer, se veian fatal o simplemente no se veian en Netscape, las causas: la manera laxa en que IExplorer validaba el cierre de tags, el infame document.all para acceder a los objetos de la pagina mediante JavaScript (de golpe casi todas las paginas lo utilizaban), atributos y propiedades que nunca serian aprobadas por el W3C…. Dicho esto Netscape no se libra de haber hecho sus propias incompatibilidades, recuerdan los layers?.

En esa epoca tenia la politica de que si se desarrollaba una pagina para Netscape (recordemos que con ASP Clasico uno tenia que renderizar todo) los ajustes (de ser necesarios) para que la pagina se viera en IExplorer serian minimos (con suerte el estilo CSS te lo podria controlar), siendo que el caso contrario no era cierto.

Eventualmente las cosas han mejorado, el crecimiento del Firefox, la estabilidad de las nuevas herramientas de desarrollo (VS.NET te permite generar un HTML bastante aceptable en Firefox) y la tendencia al uso de Flash para las cosas dinamicas, y el surgimiento del Ajax entre otras cosas, han configurado un escenario en el cual el caos se ha reducido de manera razonable, mas aun… los desarrolladores (en parte gracias a las herramientas) tienden a evitar esas “innovaciones” propietarias (como los behaviours introducidos en IE5) para sus webs publicas, en el caso de Intranets la cosa cambia pues puedes controlar que todos tus usuarios usen un unico browser.

Asi pues la mayoria de las innovaciones de IExplorer tratan de ser evitadas, las pruebas te ayudan a detectarlas, no se si W3C habra aceptado algunas, pero con la mayoria de ellas creo que la cosa no ha sido asi, pero… a veces se necesita una mayor amplitud de criterios, y reconocer que dentro de todo el ruido generado por sus innovaciones propietarias habia algo que deberia quedarse y ser admitida como standard, y es la funcion showModalWindow.

Como usuarios de aplicaciones Windows, nos hemos topado siempre con estas ventanas que saltan pidiendote que ingreses un dato, de tal manera que a menos que des el dato o canceles la operacion, no podras proseguir. Esto permite al que diseña la aplicacion un control del flujo de uso de manera total, lamentablemente trasladar esta ventaja al desarrollo de Aplicaciones Web tiene sus problemas, pues dicha funcionalidad no es parte del standard W3C por lo cual Firefox u Opera no tienen porque implementarla.

Se podria decir que para eso existe el “window.open”, pero la solucion no nos sirve pues al abrir una ventana nueva, ahora tenemos dos ventanas, pudiendo el usuario moverse a la primera sin haber cerrado las acciones que se suponian debiamos hacer en la ventana nueva, y hacer sobre eso ajustes en JavaScript para “simular” un comportamiento modal no es eficiente ni replica totalmente la funcionalidad deseada.

Parches hay muchos, pero nada que produzca la sencilla funcionalidad de una ventana modal, por lo que toca preguntarse si a estas alturas se justifica la cerrazon de no incluir algo de veras util como la funcion showModalWindow?.

3 thoughts on “En defensa de showModalWindow

  1. no creo que sea tan necesaria, seguramente se ahorra un poco de codigo con esta instruccion, pero se puede hacer tranquilamente con jscript. en caso de aprobarse, los programadores de browser tendrian que tener mucho cuidado en su funcionalidad, ya que no es bueno que una ventana modal te impida seguir trabajando con otras paginas abiertas. actualmente el firefox soporta esta funcion, mientras que el opera todavia no, yo hice un userscript para emular de alguna manera las ventanas modales, lo puedes encontrar aqui:
    http://my.opera.com/leoalassia/blog/2008/08/07/showmodaldialog-for-opera
    espero les sirva

Agregue un comentario

Su dirección de correo no se hará público.

Time limit is exhausted. Please reload the CAPTCHA.