valor que por parametros obtener manipular enviar elementos datos _get javascript jquery url

que - obtener parametros url javascript



JavaScript: obtenga una porciĆ³n de la ruta URL (4)

¿Cuál es la forma correcta de extraer solo el camino de una URL usando JavaScript?

Ejemplo:
Tengo URL
http://www.somedomain.com/account/search?filter=a#top
pero me gustaría obtener esta porción
/ cuenta / búsqueda

Estoy usando jQuery si hay algo allí que pueda aprovecharse.


Las otras respuestas usan document.createElement o window.location que no son compatibles con entornos como node, así que escribí un component que funcionará tanto con javascript en el lado del servidor como en navegadores.

Puede usar parseUrl () para obtener un objeto similar al de la respuesta de Nicole:

var url = ''http://www.somedomain.com/account/search?filter=a#top''; var urlObject = parseUrl(url); urlObject.href // ''http://www.somedomain.com/account/search?filter=a#top'' urlObject.searchParams // { filter: ''a'' } urlObject.hash // ''#top'' urlObject.search // ''?filter=a'' urlObject.protocol // ''http:'' urlObject.host // ''www.somedomain.com'' urlObject.hostname // ''www.somedomain.com'' urlObject.port. // '''' urlObject.path // ''/account/search''

Siéntase libre de importar el componente para usar el método parseUrl ().


Si esta es la url actual use window.location.pathname de lo contrario use esta expresión regular:

var reg = /.+?/:////.+?(//.+?)(?:#|/?|$)/; var pathname = reg.exec( ''http://www.somedomain.com/account/search?filter=a#top'' )[1];


Hay una propiedad del objeto window.location incorporado que proporcionará eso para la ventana actual.

// If URL is http://www.somedomain.com/account/search?filter=a#top window.location.pathname // /account/search // For reference: window.location.host // www.somedomain.com (includes port if there is one) window.location.hostname // www.somedomain.com window.location.hash // #top window.location.href // http://www.somedomain.com/account/search?filter=a#top window.location.port // (empty string) window.location.protocol // http: window.location.search // ?filter=a


Actualiza, usa las mismas propiedades para cualquier URL:

Resulta que este esquema está siendo estandarizado como una interfaz llamada URLUtils , y ¿adivinen qué? Tanto el objeto window.location existente como los elementos de anclaje implementan la interfaz.

De modo que puede usar las mismas propiedades anteriores para cualquier URL , solo cree un ancla con la URL y acceda a las propiedades:

var el = document.createElement(''a''); el.href = "http://www.somedomain.com/account/search?filter=a#top"; el.host // www.somedomain.com (includes port if there is one[1]) el.hostname // www.somedomain.com el.hash // #top el.href // http://www.somedomain.com/account/search?filter=a#top el.pathname // /account/search el.port // (port if there is one[1]) el.protocol // http: el.search // ?filter=a

[1]: el soporte del navegador para las propiedades que incluyen el puerto no es consistente, consulte: http://jessepollak.me/chrome-was-wrong-ie-was-right

Esto funciona en las últimas versiones de Chrome y Firefox . No tengo versiones de Internet Explorer para probar, por lo tanto, pruébelo con el ejemplo de JSFiddle.

Ejemplo JSFiddle

También hay un próximo objeto de URL que ofrecerá este soporte para las propias URL, sin el elemento de anclaje. Parece que no hay navegadores estables que lo soporten en este momento, pero se dice que viene en Firefox 26. Cuando creas que podrías tener soporte, pruébalo aquí .


window.location.href.split(''/'');

Le dará una matriz que contiene todas las partes de la URL, a las que puede acceder como una matriz normal.

O una solución cada vez más elegante sugerida por @Dylan, con solo las partes de ruta:

window.location.pathname.split(''/'');