Tratamiento de parámetros de una URL

9 views
Skip to first unread message

Mikel Gómez

unread,
May 26, 2006, 7:08:02 AM5/26/06
to Foros focus
Varias funciones javascript para manipular o tratar los parámetros o
variables de una URL o URI:

Lista de funciones y descripción:
(el parámetro url de las siguientes funciones es opcional, si no se
proporciona se toma la dirección actual)

- URLvariables - Obtención de los parámetros de la URL en una matriz,
- URLvariable - Obtención del valor de un parámetro determinado.
- URLquitar - Eliminar un parámetro.
- URLponer - Añadir una nueva variable o parámetro.
- URLordenar - Ordenación de todos los parámetros de forma alfabética.

Las funciones:

// Matriz con variables/parámetros de la URL.
function URLvariables(url) {
var url = (url) ? url : location.href ;
var pos1 = url.indexOf('?');
var url2 = url.substr(pos1+1);
return url2.split('&');
}

// Obtención de valor de variable de URL determinada por nombre.
function URLvariable(nombre, url) {
var url = (url) ? url : location.href ;
var vars = URLvariables(url);
for (var i=0; i<vars.length; i++) {
vals = vars[i].split('=');
if (vals[0]==nombre) return vals[1]
}
return false
}

// Eliminación de variable de URL.
function URLquitar(nombre, url) {
var url = (url) ? url : location.href ;
if (URLvariable(nombre, url)) {
var er = new RegExp('\\&?' + nombre + '=[^\\&$]*') ;
url = url.replace(er, '') ;
}
return url
}

// Incorporación de nueva variable a URL.
function URLponer(nombre, valor, url) {
var url = (url) ? url : location.href ;
url += '&' + nombre + '=' + escape(valor) ;
return url ;
}

// Ordenación alfabética de los parámetros de la URL.
function URLordenar(url) {
var url = (url) ? url : location.href ;
if (url.indexOf('?')>=0) {
var host = url.substr(0, url.indexOf('?')) ;
var vars = URLvariables(url) ;
vars.sort(); // Ordenación de los parámetros de forma alfabética.
url = '' ;
for (var i=0; i<vars.length; i++) { // Construcción de la nueva URL
if(vars[i]) {
url += (url=='') ? '?' : '&' ;
url += vars[i] ;
}
}
url = host + url ;
}
return url ;
}

Reply all
Reply to author
Forward
0 new messages