without with route react change javascript string url

route - javascript change url without reloading



URL actual sin parĂ¡metros, hash, http(s):// (8)

Estoy buscando una forma clara de obtener la URL del documento actual en Javascript.

  • La URL debe estar limpia de parámetros (? Parámetro1 = bla y parámetro2 = bla)
  • La URL debe estar limpia de etiquetas hash (#jumppoint)
  • http / https debe ser eliminado / consolidado en http

Sé que puedo obtener la URL actual con location.href y luego usar algunas expresiones regulares para limpiarla, pero ¿tal vez haya una solución mejor / más limpia para deshacerme de la basura?


El objeto Location tiene lo que necesitas

window.location.hostname + window.location.pathname


Ninguna de las respuestas dadas aborda el hecho de que el protocolo puede ser http o https como en el título de OP. Para acomodar esto sugiero:

document.location.protocol +"//"+ document.location.hostname + document.location.pathname


Por favor, intente este fragmento:

if (!window.location.origin){ // For IE window.location.origin = window.location.protocol + "//" + (window.location.port ? '':'' + window.location.port : ''''); } url = window.location.origin + window.location.pathname; document.write(''Origin url: '' + url);


Puede usar estas funciones de reemplazo para eliminar el hash y los argumentos de búsqueda y normalizar https a http:

url = url.replace(/#[^#]*$/, "").replace(//?[^/?]*$/, "").replace(/^https:/, "http:");

O, si todo lo que realmente quieres es el dominio y la ruta, puedes usar esto:

window.location.hostname + window.location.pathname


Tienes el objeto document.location , por lo que:

var oLoc = document.location, sUrl = oLoc.protocol + oLoc.hostname; // or "http://" + oLoc.hostname


Tratar:

window.location.hostname;


This página indica que probablemente podría usar window.location.host para obtener la parte que realmente le interesa. Sin embargo, no la he probado.


Hay muchos otros parámetros además del href en window.location . Vea la referencia completa aquí: https://developer.mozilla.org/en/DOM/window.location

Lo que está buscando como titular podría ser window.location.hostname :

"el nombre de host (sin el número de puerto o los corchetes)".

En la URL de ejemplo http://[www.example.com]:80/search?q=devmo#test el nombre de host será www.example.com .

Si también desea incluir la ruta y forzar un protocolo http: //, intente:

''http://'' + window.location.hostname + window.location.pathname;

Como nota al margen, un truco ingenioso para obtener los mismos parámetros de otra URL que no sea window.location es crear un ancla vacía:

var a = document.createElement(''a''); a.href = ''http://www.example.com:80/search?q=devmo#test''; console.log(''http://'' + a.hostname + a.pathname);