sábado, 25 de abril de 2015

Obtener parámetros de la URL

Constantemente utilizamos la URL para pasar parámetros cuando estamos trabajando con SharePoint. De hecho el propio SharePoint es el primero que lo hace y el caso más fácil de ver, es cuando accedemos a un elemento de lista, ya sea en forma de edición o de presentación:

http://misitoweb/Lists/Alertas/EditForm.aspx?ID=39&Source=http%3A%2F%2Fmisitioweb%2FLists%2FAlertas%2FAllItems%2Easpx

En este ejemplo, podemos ver que tenemos dos parámetros ID y Source, que sirven para identificar el elemento y a dónde nos va a llevar una vez aceptemos o cancelemos la edición del elemento.

Normalmente para obtener y tratarlo, utilizaríamos JavaScript y/o JQuery, y trataríamos la URL.

La idea que propongo en esta entrada es encapsular una función que ya nos lo obtenga y que incluyéndola en un archivo .js, nos permitiría referenciarla en la página maestra y utilizar en nuestro portal.

El código sería sencillo:

function getUrlVars() {
  var vars = {};
  var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
    vars[key] = value;
  });
  return vars;
}


Esto nos permitiría recuperar dicho parámetro haciendo algo tan sencillo como:

var elemento = getUrlVars()["ID"];
var destino = getUrlVars()["Source"];

Y poder trabajar con ellas. Como se ve, es algo fácil y sencillo.

La idea la obtuve de:
http://papermashup.com/read-url-get-variables-withjavascript/