2010-11-03 26 views
8

¿Es posible con JavaScript cambiar la dirección URL del navegador, pero no abandonar la página?Cómo cambiar la URL que se muestra en el navegador sin salir de la página

+0

¿Quiere cambiar el texto en la barra de direcciones sin ir allí realmente? – Adam

+0

Primero busque en el sitio web: http://stackoverflow.com/search?q=javascript+change+url+ – BGerrissen

+2

Posible duplicación de * muchas * preguntas. Por ejemplo: [Cambiar la URL con jQuery sin volver a cargar la página] (http://stackoverflow.com/questions/4013122/change-the-url-with-jquery-without-reloading-the-page) – Robusto

Respuesta

13

En los navegadores anteriores, puede no cambiar la url en la barra de direcciones sin salir de la página. Pero puede cambiar la porción hash de la url sin salir de la página. Es decir que puede cambiar www.example.com a www.example.com#new_text con JavaScript window.location.hash = "new_text"; todo después del # se puede cambiar.

Sin embargo, en HTML5 hay una nueva API de historial que le permite cambiar la parte de la URL después del dominio. Entonces todavía no puede cambiar www.example.com a www.BankOfAmerica.com (por razones de seguridad), pero puede cambiar www.example.com/foo a www.example.com/bar.

history.pushState("object or string representing the state of the page", "new title", "newURL"); 

Comprobar When can I use... a ver qué navegadores soporte HTML5 gestión de historial de la sesión y apoyar el nuevo método pushState.

Además, hay una biblioteca de JavaScript que normalizará la API de historial en todos los navegadores y cambiará la URL en los navegadores nuevos y usará la porción hash para navegadores antiguos. Ver history.js.

+1

sí , usted puede. simplemente no sé cómo. Facebook lo hace, pero por supuesto son súper programadores. Editar: acabo de descubrir cómo aquí: http://stackoverflow.com/questions/6955430/change-url-on-ajax-request –

+0

@Eduard Luca Gracias por mostrarme que, he actualizado esta respuesta en consecuencia. – Adam

0

Puede cambiar cualquier cosa después de la marca de almohadilla (#) ya que esto se usa con frecuencia en aplicaciones de Ajax como la búsqueda de Google y el nuevo Twitter. (Es por eso que todo aparece después de la marca de almohadilla en esas aplicaciones). Pero si cambia algo más, la página tendrá que volver a cargarse.

5

Supongo que está hablando de la URL visible en la barra de URL.

La respuesta es No, es una vulnerabilidad de seguridad importante cuando una aplicación intenta engañar a los usuarios para que piensen que están en otro sitio.

-1

No, no es posible. Y, siempre que sea posible, se trata de un error del navegador (sé de errores de seguridad anteriores relacionados con este comportamiento, y se solucionaron en el pasado).

En realidad ... Puede cambiar la última parte de la URL, cualquier cosa después del carácter #. Pero el nombre de host y la ruta no se pueden cambiar sin abandonar la página.

Cuestiones relacionadas