Si te encuentras con algo que te causa duda puedes comentarlo y te ayudaremos lo mas rápido que podamos.
Solución:
La respuesta corta es que history.pushState
(no History.pushState
lo que arrojaría una excepción, el window
parte es opcional) nunca hará lo que usted sugiere.
Si las páginas se actualizan, se debe a otras cosas que está haciendo (por ejemplo, es posible que tenga un código en ejecución que vaya a una nueva ubicación en el caso de que cambie la barra de direcciones).
history.pushState(urlPath:'/page2.php',"",'/page2.php')
funciona exactamente como se supone que debe hacerlo en las últimas versiones de Chrome, IE y Firefox para mí y mis colegas.
De hecho, puedes poner lo que quieras en la función: history.pushState(, '', 'So long and thanks for all the fish.not a real file')
.
Si publica más código (con especial atención al código cercano al history.pushState
y en cualquier lugar document.location
se usa), entonces estaremos más que felices de ayudarlo a descubrir de dónde proviene exactamente este problema.
Si publica más código, actualizaré esta respuesta (tengo su pregunta favorita) :).
Como han sugerido otros, no está explicando claramente su problema, lo que está tratando de hacer o cuáles son sus expectativas en cuanto a lo que se supone que debe hacer esta función.
Si he entendido correctamente, entonces espera que esta función actualice la página por usted (en realidad usa el término “recarga el navegador”).
Pero esta función no está destinada a recargar el navegador.
Todo lo que hace la función es agregar (empujar) un nuevo “estado” en el historial del navegador, de modo que en el futuro, el usuario pueda volver a este estado en el que se encuentra ahora la página web.
Normalmente, esto se usa junto con las llamadas AJAX (que actualizan solo una parte de la página).
Por ejemplo, si un usuario realiza una búsqueda “GATOS” en uno de sus cuadros de búsqueda, y los resultados de la búsqueda (presumiblemente imágenes tiernas de gatos) se vuelven a cargar a través de AJAX, en la parte inferior derecha de su página, entonces su el estado de la página no se cambiará. Es decir, en un futuro próximo, cuando el usuario decida que quiere volver a su búsqueda de “CATS”, no podrá hacerlo, porque el estado no existe en su historial. Solo podrá volver a hacer clic en el cuadro de búsqueda en blanco.
De ahí la necesidad de la función
history.pushState(,"Results for `Cats`",'url.html?s=cats');
Está pensado como una forma de permitir que el programador defina específicamente su búsqueda en el historial del usuario. Eso es todo lo que se pretende hacer.
Cuando la función funciona correctamente, lo único que debe esperar ver es que la dirección en la barra de direcciones de su navegador cambie a lo que especifique en su URL.
Si ya entiendes esto, entonces lo siento por este largo preámbulo. Pero parece, por la forma en que planteas la pregunta, que no lo has hecho.
Aparte, también encontré algunas contradicciones entre la forma en que se describe la función en la documentación y la forma en que funciona en la realidad. Encuentro que no es una buena idea usar valores en blanco o vacíos como parámetros.
Vea mi respuesta a esta pregunta SO. Entonces recomendaría poner una descripción en su segundo parámetro. De memoria, esta es la descripción que el usuario ve en el menú desplegable, cuando hace clic y mantiene el mouse sobre el botón “atrás”.
window.history.pushState(urlPath:'/page1',"",'/page1')
Solo funciona después de cargar la página, y cuando haga clic en actualizar no significa que haya una URL real.
Lo que debe hacer aquí es saber a qué URL está siendo redirigido cuando recarga esta página. Y en esa página puede obtener las condiciones obteniendo la URL actual y haciendo todas sus condiciones.
Calificaciones y comentarios
Si tienes alguna suspicacia o disposición de reaccionar nuestro enunciado puedes realizar una crítica y con gusto lo ojearemos.