¿Está bien usar target = “_ blank” en HTML5?

Recuerdo haber leído en alguna parte que en HTML5 ya no estaba bien usar target="_blank" en HTML5, pero no puedo encontrarlo ahora.

¿Está bien continuar usando target="_blank" ?

Sé que generalmente se considera una mala idea, pero es por la manera más fácil de abrir una nueva ventana para algo como un PDF, y tampoco requiere que dependas de JavaScript.

Parece que target="_blank" sigue estando bien. Se muestra como una palabra clave de contexto de exploración en el último borrador de HTML5 .

Está bien usar target="_blank" ; Esto se eliminó en XHTML porque la orientación de ventanas nuevas siempre mostrará la alerta emergente en la mayoría de los navegadores. XHTML siempre mostrará un error con el atributo de destino en una validación.

HTML 5 lo trajo porque todavía lo usamos. Es nuestro amigo y no podemos dejarlo ir.

Nunca dejar ir.

Aunque el target="_blank" es aceptable en HTML5 , personalmente bash nunca usarlo (incluso para abrir archivos PDF en una nueva ventana).

HTML debe definir significado y contenido . Pregúntese: “¿cambiaría el significado del elemento a si se eliminara el atributo target ?” De lo contrario, el código no debería ir en el HTML. (En realidad, estoy sorprendido de que el W3C lo haya conservado … Creo que realmente no pueden dejarlo ir).

El comportamiento del navegador, específicamente, el comportamiento interactivo con el usuario , debe implementarse con lenguajes de scripting del lado del cliente como JavaScript. Como desea que el navegador se comporte de una manera particular, es decir, al abrir una nueva ventana, debe usar JS. Pero como mencionaste, este comportamiento requiere que el navegador confíe en JS. (Aunque si su sitio se degrada graciosamente, o mejora progresivamente, o lo que sea , entonces todavía debería estar bien. Los usuarios con JS desactivados no perderán mucho).

Dicho esto, ninguna de estas es la respuesta correcta. En alguna parte, la opinión de que la forma en que se abre un enlace debe ser finalmente decidida por el usuario final . Toma este ejemplo.

Estás navegando Wikipedia, cada vez más y más en un agujero de conejo. Te encuentras con un enlace en tu lectura.

Digamos que quieres revisar 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 “volver” y esperar a que la página se vuelva a cargar lleva demasiado tiempo). O bien, ¿y si parece interesante y quieres guardarlo para más adelante? Tal vez deberías abrirlo en una nueva pestaña de fondo y seguir leyendo la página actual. O tal vez decidas que terminaste 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 como corresponda. 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, qué tipos y / o formatos de fonts hacen referencia y qué hacen. La información sobre herramientas puede ser tu amigo (a menos que estés usando una tableta o teléfono, en ese caso, especifícalos en el sitio móvil). Todos sabemos cuánto le apetece tomar en un lugar que no esperábamos o hacer que suceda algo que no quisimos.

es por la manera más fácil de abrir una nueva ventana para algo así como un PDF

También es la forma más fácil de molestar a los usuarios que no usan Windows. PDF abierto muy bien en navegadores en otras plataformas. Abrir una nueva ventana también arruina el historial de navegación y complica las cosas en plataformas más pequeñas como los teléfonos inteligentes.

NO abra ventanas nuevas para cosas como PDF solo porque las versiones anteriores de Windows estaban rotas.

Si bien el objective aún es aceptable en HTML5, no es preferible. Para vincular a un archivo PDF, use el atributo de descarga en lugar del atributo de destino.

Aquí hay un ejemplo:

 Invoice 

Si el nombre del archivo original está codificado para el almacenamiento único de archivos, puede especificar un nombre de descarga fácil de usar asignando un valor al atributo de descarga:

 Invoice 

Tenga en cuenta que, si bien la mayoría de los navegadores modernos admiten esta función, algunos no. Vea caniuse.com para más información.

La mayoría de los desarrolladores web usan target="_blank" solo para abrir enlaces en una nueva pestaña. Si usa target="_blank" solo para abrir enlaces en una nueva pestaña, entonces es vulnerable a un atacante. Cuando abre un enlace en una nueva pestaña ( target="_blank" ), la página que se abre en una nueva pestaña puede acceder a la pestaña inicial y cambiar su ubicación usando la propiedad window.opener .

Código Javascript:

 window.opener.location.replace(malicious URL) 

Prevención:

 rel="nofollow noopener noreferrer" 

Creo que el atributo de destino está en desuso para el elemento , no , es probable que haya escuchado que ya no se usa.

Puedes hacerlo de la siguiente manera con jquery, esto lo abrirá en una nueva ventana: