Recuerdo haber leído en alguna parte que en HTML5 ya no estaba bien usarlo target="_blank"
en HTML5, pero no puedo encontrarlo ahora.
¿Está bien seguir usándolo target="_blank"
?
Sé que generalmente se considera una mala idea, pero es la manera más fácil de abrir una nueva ventana para algo como un PDF, y tampoco requiere que confíes en JavaScript.
javascript
html
window
Darryl Hein
fuente
fuente
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.Respuestas:
Parece que
target="_blank"
todavía está bien. Aparece como una palabra clave de contexto de navegación en el último borrador de HTML5 .fuente
target="_blank"
hará que se abra una nueva ventana cada vez que el usuario haga clic en el enlace. A menos que esto sea realmente lo que quiere que suceda (y rara vez lo es), considere usarlotarget="somethingUnique"
para que el usuario solo pueda abrir una ventana, incluso si hace clic en el enlace varias veces. Es una experiencia de usuario mucho más agradable.target="_blank"
es bueno es compartir botones.Está bien usarlo
target="_blank"
; Esto se eliminó en XHTML porque apuntar a nuevas ventanas 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 de vuelta porque todavía lo usamos. Es nuestro amigo y no podemos dejarlo ir.
Nunca dejar ir.
fuente
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 sitarget
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.
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.
fuente
También es la forma más fácil de molestar a los usuarios que no son de 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 nuevas ventanas para cosas como PDF solo porque las versiones anteriores de Windows estaban rotas.
fuente
La mayoría de los desarrolladores web
target="_blank"
solo usan para abrir enlaces en una nueva pestaña. Sitarget="_blank"
solo usa 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 utilizando lawindow.opener
propiedad.Código Javascript:
Prevención:
fuente
Si bien el objetivo sigue siendo aceptable en HTML5, no se prefiere. Para vincular a un archivo PDF, use el atributo de descarga en lugar del atributo de destino.
Aquí hay un ejemplo:
Si el nombre del archivo original está codificado para un almacenamiento de archivos único, puede especificar un nombre de descarga fácil de usar asignando un valor al atributo de descarga:
Tenga en cuenta que, si bien la mayoría de los navegadores modernos admiten esta función, algunos pueden no serlo. Ver caniuse.com para obtener más información.
fuente
¡Seguro que lo es!
http://www.w3.org/TR/2010/WD-html5-20100624/text-level-semantics.html#the-a-element
fuente
Puede hacerlo de la siguiente manera con jquery, esto lo abrirá en una nueva ventana:
fuente
Creo que el atributo de destino está en desuso para el
<link>
elemento, no<a>
, probablemente es por eso que escuchaste que ya no se debe usar.fuente