por pasar parametros parameter obtener enviar datos agregar _get javascript parsing url

pasar - ¿Cómo leer datos GET desde una URL usando JavaScript?



obtener parametros url jquery (7)

Aquí hay una solución. Por supuesto, esta función no necesita cargarse en una opción "window.params", que se puede personalizar.

window.params = function(){ var params = {}; var param_array = window.location.href.split(''?'')[1].split(''&''); for(var i in param_array){ x = param_array[i].split(''=''); params[x[0]] = x[1]; } return params; }();

Ejemplo de llamada de API en http://www.mints.com/myurl.html?name=something&goal=true :

if(window.params.name == ''something'') doStuff(); else if( window.params.goal == ''true'') shoutGOOOOOAAALLL();

Estoy tratando de pasar datos de una página a otra.

www.mints.com?name=something

¿Cómo leer el name usando JavaScript?


Creo que esto también debería funcionar:

function $_GET(q,s) { s = (s) ? s : window.location.search; var re = new RegExp(''&''+q+''=([^&]*)'',''i''); return (s=s.replace(/^/?/,''&'').match(re)) ?s=s[1] :s=''''; }

Solo llámalo así:

var value = $_GET(''myvariable'');


Iv''e corrigió / mejoró la respuesta de Tomalak con:

  • Haga una matriz solo si es necesario.
  • Si hay otro símbolo de ecuación en el valor que obtiene dentro del valor
  • Ahora usa el valor location.search lugar de una url.
  • La cadena de búsqueda vacía da como resultado un objeto vacío.

Código:

function getSearchObject() { if (location.search === "") return {}; var o = {}, nvPairs = location.search.substr(1).replace(//+/g, " ").split("&"); nvPairs.forEach( function (pair) { var e = pair.indexOf(''=''); var n = decodeURIComponent(e < 0 ? pair : pair.substr(0,e)), v = (e < 0 || e + 1 == pair.length) ? null : decodeURIComponent(pair.substr(e + 1,pair.length - e)); if (!(n in o)) o[n] = v; else if (o[n] instanceof Array) o[n].push(v); else o[n] = [o[n] , v]; }); return o; }


La respuesta seleccionada actualmente no funcionó del todo en mi caso, y creo que es bastante típica. ¡Encontré la siguiente función here y funciona genial!

function getAllUrlParams(url) { // get query string from url (optional) or window var queryString = url ? url.split(''?'')[1] : window.location.search.slice(1); // we''ll store the parameters here var obj = {}; // if query string exists if (queryString) { // stuff after # is not part of query string, so get rid of it queryString = queryString.split(''#'')[0]; // split our query string into its component parts var arr = queryString.split(''&''); for (var i=0; i<arr.length; i++) { // separate the keys and the values var a = arr[i].split(''=''); // in case params look like: list[]=thing1&list[]=thing2 var paramNum = undefined; var paramName = a[0].replace(//[/d*/]/, function(v) { paramNum = v.slice(1,-1); return ''''; }); // set parameter value (use ''true'' if empty) var paramValue = typeof(a[1])===''undefined'' ? true : a[1]; // (optional) keep case consistent paramName = paramName.toLowerCase(); paramValue = paramValue.toLowerCase(); // if parameter name already exists if (obj[paramName]) { // convert value to array (if still string) if (typeof obj[paramName] === ''string'') { obj[paramName] = [obj[paramName]]; } // if no array index number specified... if (typeof paramNum === ''undefined'') { // put the value on the end of the array obj[paramName].push(paramValue); } // if array index number specified... else { // put the value at that index number obj[paramName][paramNum] = paramValue; } } // if param name doesn''t exist yet, set it else { obj[paramName] = paramValue; } } } return obj; }


También hice una función bastante simple. Lo llamas por: get ("yourgetname");

y obtener lo que sea que haya (Ahora que lo escribí noté que te dará% 26 si tuvieras un & en tu valor ...)

function get(name){ var url = window.location.search; var num = url.search(name); var namel = name.length; var frontlength = namel+num+1; //length of everything before the value var front = url.substring(0, frontlength); url = url.replace(front, ""); num = url.search("&"); if(num>=0) return url.substr(0,num); if(num<0) return url; }



function parseURLParams(url) { var queryStart = url.indexOf("?") + 1, queryEnd = url.indexOf("#") + 1 || url.length + 1, query = url.slice(queryStart, queryEnd - 1), pairs = query.replace(//+/g, " ").split("&"), parms = {}, i, n, v, nv; if (query === url || query === "") return; for (i = 0; i < pairs.length; i++) { nv = pairs[i].split("=", 2); n = decodeURIComponent(nv[0]); v = decodeURIComponent(nv[1]); if (!parms.hasOwnProperty(n)) parms[n] = []; parms[n].push(nv.length === 2 ? v : null); } return parms; }

Use de la siguiente manera:

var urlString = "http://www.foo.com/bar?a=a+a&b%20b=b&c=1&c=2&d#hash"; urlParams = parseURLParams(urlString);

que devuelve un objeto como este:

{ "a" : ["a a"], /* param values are always returned as arrays */ "b b": ["b"], /* param names can have special chars as well */ "c" : ["1", "2"] /* an URL param can occur multiple times! */ "d" : [null] /* parameters without values are set to null */ }

Asi que

parseURLParams("www.mints.com?name=something")

da

{name: ["something"]}

EDITAR : La versión original de esta respuesta utilizó un enfoque basado en expresiones regulares para el análisis de URL. Utilizaba una función más corta, pero el enfoque era defectuoso y lo reemplacé con un analizador apropiado.