admin管理员组

文章数量:1026989

So, here's the main code, which checks the URL of the current page for the string ?a= then sets the variable ee_roomname to anything after that.

<script type="text/javascript">
    var ee_roomname = unescape(location.href.substring(location.href.lastIndexOf("?a=")+1))
    if(ee_roomname.indexOf("?") != -1) ee_roomname = "";
</script>

But what, if I want to add more variables, maybe after this value. For ex. here's a possible url:

.html?a=hijk

Thus, the variable ee_roomname will be set to hijk
Now if we add some more tags, it will look like this:

.html?a=hijk&b=lmno&c=pqrs

Now ee_roomname will be set to hijk&b=lmno&c=pqrs, which is not what I want.
I want the code to only track the a variable/parameter's value from the URL.

What needs to be changed, and how, in order to make it work?
Maybe provide a code I can use, too. (not too big fan of "do this and this" and such)

So, here's the main code, which checks the URL of the current page for the string ?a= then sets the variable ee_roomname to anything after that.

<script type="text/javascript">
    var ee_roomname = unescape(location.href.substring(location.href.lastIndexOf("?a=")+1))
    if(ee_roomname.indexOf("?") != -1) ee_roomname = "";
</script>

But what, if I want to add more variables, maybe after this value. For ex. here's a possible url:

http://abc.de/fg.html?a=hijk

Thus, the variable ee_roomname will be set to hijk
Now if we add some more tags, it will look like this:

http://abc.de/fg.html?a=hijk&b=lmno&c=pqrs

Now ee_roomname will be set to hijk&b=lmno&c=pqrs, which is not what I want.
I want the code to only track the a variable/parameter's value from the URL.

What needs to be changed, and how, in order to make it work?
Maybe provide a code I can use, too. (not too big fan of "do this and this" and such)

Share Improve this question edited Sep 22, 2012 at 13:15 SeinopSys asked Jun 21, 2012 at 16:37 SeinopSysSeinopSys 8,93610 gold badges66 silver badges114 bronze badges 2
  • Looks like you want something like this – Gaʀʀʏ Commented Jun 21, 2012 at 16:40
  • @le_garry Exactly what I was looking for. Could you post that as an answer so I can accept it? – SeinopSys Commented Jun 21, 2012 at 16:44
Add a ment  | 

3 Answers 3

Reset to default 5

Here is a function to retrieve url parameters

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

How to retrieve the url parameters in your javascript

var first = getUrlVars()["id"];
var second = getUrlVars()["page"];

alert(first);
alert(second);

View the Source

For your bonus: if you split the string at the '?' and take the first half, that will give you the "pure" absolute url.

to answer the first question, you could also try:

<script> 
  var query = window.location.search.substring(1);
  var getv = query.split("&");
  var pair = new Array();
  for (var i=0; i < getv.length; i++) {
    pair[i] = getv[i].split("=");
  }
</script>

pair is an array of all get variables and values like: [["h", "1"], ["g", "2"]] if ?h=1&g=2

hope that helps.

Try to parse the entire url using this URL Parsing library in JavaScript.

So, here's the main code, which checks the URL of the current page for the string ?a= then sets the variable ee_roomname to anything after that.

<script type="text/javascript">
    var ee_roomname = unescape(location.href.substring(location.href.lastIndexOf("?a=")+1))
    if(ee_roomname.indexOf("?") != -1) ee_roomname = "";
</script>

But what, if I want to add more variables, maybe after this value. For ex. here's a possible url:

.html?a=hijk

Thus, the variable ee_roomname will be set to hijk
Now if we add some more tags, it will look like this:

.html?a=hijk&b=lmno&c=pqrs

Now ee_roomname will be set to hijk&b=lmno&c=pqrs, which is not what I want.
I want the code to only track the a variable/parameter's value from the URL.

What needs to be changed, and how, in order to make it work?
Maybe provide a code I can use, too. (not too big fan of "do this and this" and such)

So, here's the main code, which checks the URL of the current page for the string ?a= then sets the variable ee_roomname to anything after that.

<script type="text/javascript">
    var ee_roomname = unescape(location.href.substring(location.href.lastIndexOf("?a=")+1))
    if(ee_roomname.indexOf("?") != -1) ee_roomname = "";
</script>

But what, if I want to add more variables, maybe after this value. For ex. here's a possible url:

http://abc.de/fg.html?a=hijk

Thus, the variable ee_roomname will be set to hijk
Now if we add some more tags, it will look like this:

http://abc.de/fg.html?a=hijk&b=lmno&c=pqrs

Now ee_roomname will be set to hijk&b=lmno&c=pqrs, which is not what I want.
I want the code to only track the a variable/parameter's value from the URL.

What needs to be changed, and how, in order to make it work?
Maybe provide a code I can use, too. (not too big fan of "do this and this" and such)

Share Improve this question edited Sep 22, 2012 at 13:15 SeinopSys asked Jun 21, 2012 at 16:37 SeinopSysSeinopSys 8,93610 gold badges66 silver badges114 bronze badges 2
  • Looks like you want something like this – Gaʀʀʏ Commented Jun 21, 2012 at 16:40
  • @le_garry Exactly what I was looking for. Could you post that as an answer so I can accept it? – SeinopSys Commented Jun 21, 2012 at 16:44
Add a ment  | 

3 Answers 3

Reset to default 5

Here is a function to retrieve url parameters

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

How to retrieve the url parameters in your javascript

var first = getUrlVars()["id"];
var second = getUrlVars()["page"];

alert(first);
alert(second);

View the Source

For your bonus: if you split the string at the '?' and take the first half, that will give you the "pure" absolute url.

to answer the first question, you could also try:

<script> 
  var query = window.location.search.substring(1);
  var getv = query.split("&");
  var pair = new Array();
  for (var i=0; i < getv.length; i++) {
    pair[i] = getv[i].split("=");
  }
</script>

pair is an array of all get variables and values like: [["h", "1"], ["g", "2"]] if ?h=1&g=2

hope that helps.

Try to parse the entire url using this URL Parsing library in JavaScript.

本文标签: phpGetting parameters from page urlStack Overflow