Aunque target="_blank"
es aceptable en HTML5 , personalmente trato de nunca usarlo (incluso para abrir archivos PDF en una nueva ventana).
HTML debería definir significado y contenido . Pregúntese: "¿cambiaría el significado del a
elemento si target
se eliminara el atributo?" Si no, el código no debería ir en el HTML. (De hecho, me sorprende que el W3C se haya quedado ... Supongo que realmente no pueden soltarlo).
El comportamiento del navegador , específicamente, el comportamiento interactivo con el usuario , debe implementarse con lenguajes de script del lado del cliente como JavaScript. Como desea que el navegador se comporte de una manera particular, es decir, abrir una nueva ventana, debe usar JS. Pero como mencionó, este comportamiento requiere que el navegador confíe en JS. (Aunque si su sitio se degrada con gracia, o mejora progresivamente, o lo que sea , entonces todavía debería estar bien. Los usuarios con JS deshabilitado no se perderán mucho).
Dicho esto, ninguno de estos es la respuesta correcta. En algún lugar está la opinión de que el usuario final debe decidir cómo se abre un enlace . Toma este ejemplo.
Estás navegando en Wikipedia, profundizando cada vez más en una madriguera de conejo. Te encuentras con un enlace en tu lectura.
Digamos que desea hojear la página vinculada muy rápido antes de volver. Puede abrirlo en una nueva pestaña y luego cerrarlo cuando haya terminado (porque presionar el botón 'atrás' y esperar la recarga de la página lleva demasiado tiempo). O bien, ¿qué pasa si parece interesante y desea guardarlo para más tarde? Tal vez debería abrirlo en una nueva pestaña de fondo y seguir leyendo la página actual. O, tal vez decidas que has terminado de leer esta página, así que solo seguirás el enlace en la pestaña actual.
El punto es que tiene su propio flujo de trabajo y desea que su navegador se comporte en consecuencia. Puede sentirse bastante frustrado si toma este tipo de decisiones por usted.
Dicho esto, los desarrolladores web deben dejar absolutamente claro a dónde van sus enlaces, a qué tipos y / o formatos de fuentes hacen referencia y qué hacen. La información sobre herramientas puede ser su amigo (a menos que esté usando una tableta o un teléfono; en ese caso, especifíquelos en el sitio móvil). Todos sabemos cuánto apesta ser llevado a un lugar que no esperábamos o hacer que algo suceda que no queríamos.
target
et al. existe. A veces son una necesidad. Una página generada dinámicamente con JS con estado, por ejemplo, donde un iframe es menos deseable que una nueva pestaña (por ejemplo, ver un PDF, como dice el OP). O cuando un sitio seguro (como un banco) lo envía a un enlace externo pero no permite el uso del botón Atrás debido a la expiración del contenido. Como todas las cosas, este atributo HTML no es una "mala idea" de usar, pero debe usarse con cuidado y cuidado, como con cada biblioteca, clase, función y propiedad en toda la programación.