tags:

views:

1886

answers:

4

Im trying to pass data from one page to another. www.mints.com?name=something

How to read name using javascript.

+2  A: 

location.search https://developer.mozilla.org/en/DOM/window.location

although most use some kind of parsing routine to read query string parameters.

here's one http://safalra.com/web-design/javascript/parsing-query-strings/

Chad Grant
+4  A: 

Something like this would do it:

function getUrlParam(param)
{
  param = param.replace(/([\[\](){}*?+^$.\\|])/g, "\\$1");
  var regex = new RegExp("[?&]" + param + "=([^&#]*)");
  var url   = decodeURIComponent(window.location.href);
  var match = regex.exec(url);
  return match ? match[1] : "";
}

use as:

var param = getUrlParam("name");
alert(param); // "something"


EDIT: Actually, it is possible that a parameter occurs multiple times in an URL. To handle this case, a slightly modified approach is necessary:

function getUrlParamArray(param)
{
  param = param.replace(/([\[\](){}*?+^$.\\|])/g, "\\$1");
  var value = [];
  var regex = new RegExp("[?&]" + param + "=([^&#]*)", "g");
  var url   = decodeURIComponent(window.location.href);
  var match = null;
  while (match = regex.exec(url)) {
    value.push(match[1]);
  }    
  return value;
}

use as (assume URL is "www.mints.com?name=something&name=otherthing"):

var param1 = getUrlParamArray("name");
alert(param[0]); // "something"
alert(param[1]); // "otherthing"

var param2 = getUrlParamArray("missing");
alert(param[0]); // undefined
Tomalak
A: 

Here's one solution. Of course, this function doesn't need to load into a "window.params" option -- that can be customized.

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;
}();

Example API call on http://www.mints.com/myurl.html?name=something&goal=true:

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

I think this should also work:

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='';
}

Just call it like this:

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