Estoy escribiendo XHTML Strict 1.0 compatible con los estándares, por lo que incluir el atributo "target" de HTML en los elementos de anclaje no funcionará.

He leído 2 formas fundamentalmente diferentes usando Javascript:

  1. Al cargar el documento, busque todos los enlaces con rel='external' y agregue el atributo target='_blank' .

  2. Utilice el atributo HTML onClick que activa una función Javascript popup(this) , que abre ventanas con window.open() .

Estos métodos tienen ahora entre 5 y 6 años, así que espero que las cosas se hayan solidificado desde entonces. ¿Cuál es la mejor manera de hacer esto?

0
Pup 1 jul. 2009 a las 00:03

3 respuestas

La mejor respuesta

con JQuery e Iframes (o un objeto en su lugar)

0
MiffTheFox 30 jun. 2009 a las 20:23

Las ventanas emergentes completas a menudo están bloqueadas por los navegadores modernos.

Si desea una forma agradable y multiplataforma para crear agradables ventanas "emergentes" livianas (en realidad comparten su ventana principal), entonces tal vez use una biblioteca de widgets de JavaScript como ExtJs.

Así es como creo mis ventanas emergentes de "Ayuda" en mi aplicación JavaScript.

// Loads help for just one window, i.e. non-tabbed.
function helpShow (help_filename, help_title) {
    if (! help_filename) { return; }

    var help_url = '/edit/help/' + help_filename + '.html';
    if (help_window == null) {
        help_window = new Ext.Window ({
            title: help_title,
            autoLoad: help_url,
            autoScroll: true,
            closeAction: 'hide',
            width: 460,
            height: 600,
            items: new Ext.Panel ()
        });
    }
    help_window.setVisible (true);
}

Algunos CCS los hacen más bonitos también.

0
the.jxc 30 jun. 2009 a las 21:24

No hay una nueva forma de hacerlo, así que lo que ya has encontrado es lo que hay.

El primer método es una especie de trampa. Está utilizando Javascript para colocar un marcado no estándar en la página después de que se haya cargado, solo para que el marcado cargado inicialmente sea válido. Una vez que el script se ha ejecutado, el código ya no es válido.

El segundo método parece mejor también desde otra perspectiva. Los enlaces funcionarán instantáneamente cuando se cargue la página, en comparación con el primer método que no cambiará los enlaces hasta que se haya cargado todo el contenido de la página. Si un usuario es rápido y hace clic en un enlace antes de que se haya cargado la última imagen, aún desea que vaya a una nueva ventana.

2
Guffa 30 jun. 2009 a las 20:20