Cuando un usuario hace clic en un enlace, necesito actualizar un campo en una base de datos y luego abrir el enlace solicitado en una nueva ventana. La actualización no es un problema, pero no sé cómo abrir una nueva ventana sin requerir que hagan clic en otro hipervínculo.
<body onLoad="document.getElementById('redirect').click">
<a href="http://www.mydomain.com?ReportID=1" id="redirect" target="_blank">Report</a>
</body>
javascript
Phillip Senn
fuente
fuente
target="_top"
no se abre en una nueva ventana,target="_blank"
sí.Respuestas:
El segundo parámetro es opcional y es el nombre de la ventana de destino.
fuente
window.open
hace lo quetarget="_blank"
hace: abre la URL en una nueva ventana.Esto puede ayudar
fuente
Sé que este es un trato hecho y resuelto, pero esto es lo que estoy usando para resolver el problema en mi aplicación.
Básicamente, lo que está sucediendo aquí es que verifico si el enlace tiene un
target=_blank
atributo. Si no lo hace, detiene la activación del enlace, lo configura para abrirse en una nueva ventana y luego hace clic programáticamente en él.Puede ir un paso más allá y omitir la detención del clic original (y hacer que su código sea mucho más compacto) al intentar esto:
Si estaba usando jQuery para abstraer la implementación de agregar un atributo de navegador cruzado, debería usar esto en lugar de
e.target.setAttribute("target", "_blank")
:Es posible que deba volver a trabajarlo para que se ajuste a su caso de uso exacto, pero así es como me rasqué mi propio picor.
Aquí hay una demostración en acción para que te metas.
(El enlace en jsfiddle vuelve a esta discusión ... no necesita una nueva pestaña :))
fuente
Personalmente prefiero usar el siguiente código si es para un solo enlace. De lo contrario, probablemente sea mejor si crea una función con un código similar.
Empecé a usar eso para evitar la estricta prueba XHTML del W3C.
fuente
Así es como lo hago con jQuery. Tengo una clase para cada enlace que quiero que se abra en una nueva ventana.
fuente
Puede extraer el href de la etiqueta a:
fuente
Esto podría ayudarlo a abrir todos los enlaces de la página :
Abrirá todos los
<a href="" class="myClass"></a>
elementos de enlace a otra pestaña como si hubiera hecho clic en cada uno.Solo necesita pegarlo en la consola del navegador. Se requiere el marco jQuery
fuente