redireccionar parametros modificar despues con javascript url parameters url-rewriting address-bar

parametros - ¿Cómo eliminar parámetros en URL y mostrarlos en la barra de direcciones sin causar redirecciones en Javascript?



redireccionar php sin header (5)

En html5, es posible volver a escribir la URL sin volver a cargar la página (aún no puede cambiar el nombre de dominio por razones de seguridad), usando la API de historial puede escribir:

history.replaceState("object or string", "title", "/another-new-url");

en el que los primeros dos parámetros son de alguna manera arbitrarios, y el tercer parámetro es la nueva url (sin incluir el nombre de dominio). Si desea habilitar el botón Atrás para regresar a la URL anterior, use pushState lugar de replaceState arriba. Lea más sobre estas funciones en esta publicación de blog .

En cuanto a la compatibilidad con el navegador, es compatible con las versiones recientes de Firefox y Chrome, pero solo en IE10 +, que no es muy común todavía. Para más detalles, consulte la matriz de compatibilidad o los detalles de implementación del navegador .

He encontrado numerosas respuestas sobre cómo extraer la URL sin los parámetros.

¿Cómo reescribe la URL en la barra de direcciones sin hacer que la página se vuelva a cargar con la nueva URL?

shortURL = top.location.href.substring(0, top.location.href.indexOf(''?'')); top.location.href = shortURL // Causes redirect

El objetivo es extraer los parámetros en Javascript pero no mostrarlos en la barra de direcciones.


En navegadores modernos con soporte para el objeto Historial, puede usar history.replaceState() o history.pushState() para cambiar la URL actual sin cambiar la página actual. Existen limitaciones sobre lo que puede cambiar (por ejemplo, no puede cambiar el dominio / origen de esta manera por razones de seguridad).

Vea aquí un resumen de estos métodos.

El historial del navegador es una grabación de dónde ha estado en su sesión de navegación. .replaceState() permite reemplazar el elemento actual en la lista de historial con uno diferente. .pushState() agrega un nuevo elemento al historial del navegador y ambos cambian la URL que se muestra en la barra de URL del navegador sin volver a cargar la página. Usted selecciona qué método usar según cómo desee que se comporte el botón "Atrás" del navegador para esta entrada de página en particular.

Nota: Estas API son compatibles con IE 10 y versiones posteriores.

En las versiones anteriores del navegador sin soporte para la API de historial, la única parte de la URL que puede cambiar sin volver a cargar la página es la etiqueta hash (la parte después de un símbolo # ) al final de la URL.



No creo que haya una posibilidad para eso, quiero decir que probablemente puedas volver a escribir la URL después de que esté cargada y agregarle a return false, así evitarás la recarga pero, de lo contrario, tendrías que hacer un formulario POST en la url para lograr eso no se muestra ningún parámetro


No puede cambiar el valor en la barra de direcciones sin redirigir. ¡Ese sería el sueño de un estafador phishing hecho realidad!

Sin embargo, puede cambiar el identificador de fragmento : (en JavaScript, el valor window.location.hash )

<!DOCTYPE html> <html> <head> <title>This is a test</title> <script> window.onload = function() { window.location.hash = "Loaded!"; document.getElementById("click-me").onclick = function() { window.location.hash = "Click!"; document.getElementById("click-me").onclick = function() { window.location.hash = "Clicked AGAIN!"; }; }; } </script> <body> <div> <input type="button" id="click-me" value="click me!" /> </div> </body> </html>

Pero cambiar la cadena de consulta redirigirá la página.