Necesito redirigir al usuario mediante JavaScript. ¿Cuál es el método preferido?window.open target _self v window.location.href?
window.open("webpage.htm", "_self");
o
window.location.href = "webpage.htm";
Necesito redirigir al usuario mediante JavaScript. ¿Cuál es el método preferido?window.open target _self v window.location.href?
window.open("webpage.htm", "_self");
o
window.location.href = "webpage.htm";
Definitivamente se prefiere el segundo método, ya que no tiene la sobrecarga de otra función de invocación:
window.location.href = "webpage.htm";
Jacob proporcionó una explicación mejor que O W Frédéric Hamidi también agregó a la respuesta, y me gustaría otorgarles la respuesta a ambos, pero parece que debo elegir una. Como Jacob respondió primero, la respuesta va para ti. – Junto
Vale la pena señalar que al usar este método, no se puede usar un enlace como '../../ folder/page.aspx? Source = abcd'. Necesitaba usar el otro método para hacer que mi enlace funcionara y aun así no podía usar "_self" con él. – Christine268
Sobrecarga de invocación de función? Las llamadas a funciones tienen un costo, pero no estoy seguro de si eso tiene alguna relevancia, por una vez espero que las llamadas a funciones hoy en día sean tan eficientes como el acceso a la propiedad para todos los propósitos prácticos. En JVM es, con los saltos de rendimiento que V8 ha hecho, espero lo mismo aquí. ¿Hay algún problema con mi análisis aquí? – faizan
window.location.href = "webpage.htm";
Como otros han dicho, el segundo enfoque es generalmente preferido.
Sin embargo, los dos fragmentos de código no son exactamente equivalentes: el primero realmente establece window.opener
en el objeto de ventana, mientras que el segundo lo dejará como está, al menos bajo Firefox.
Puede omitir window
y simplemente usar location.href
. Por ejemplo:
location.href = 'http://google.im/';
Esperemos que alguien más se guarde al leer esto.
Nos encontramos con un problema con los navegadores basados en webkit haciendo:
window.open("webpage.htm", "_self");
El navegador le bloqueará y morir si teníamos demasiados nodos DOM. Cuando cambiamos nuestro código para seguir la respuesta aceptada de:
location.href = "webpage.html";
todo estaba bien. Nos tomó un tiempo averiguar qué causaba el problema, ya que no era obvio qué hacía que nuestra página no se cargara periódicamente.
Utilice este
window.open("url","_self");
- El primer parámetro "url" es ruta completa de la página que desea abrir.
- El segundo parámetro "_self", se usa para abrir la página en la misma pestaña. Si desea abrir la página en otra pestaña, utilice "_blank".
Esta respuesta se opone directamente a la respuesta sugerida y puede hacer que los navegadores fallen. Ver mi respuesta en este hilo. Además, esto no dice por qué uno elegiría usar este método, solo dice usarlo. –
¿No es el primero que abre una nueva ventana? No estoy seguro en realidad. –
@Gunner, No, lo abrirá en la misma ventana, de ahí el '" _self "' allí ... –
si reemplaza _self con _blank, se abrirá en una nueva ventana – DOK