1

所以,这里是主要代码,它检查当前页面的 URL 中的字符串?a=然后将变量ee_roomname设置为之后的任何值。

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

但是,如果我想添加更多变量,也许在这个值之后。例如。这是一个可能的网址:

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

因此,变量ee_roomname将设置为hijk
现在如果我们添加更多标签,它将如下所示:

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

现在ee_roomname将设置为hijk&b=lmno&c=pqrs,这不是我想要的。
我希望代码仅从URL 跟踪变量/参数的值

为了让它发挥作用,需要改变什么,以及如何改变?
也许提供一个我也可以使用的代码。(不太喜欢“做这个做这个”之类的)

4

3 回答 3

5

这是一个检索url参数的函数

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

如何在 javascript 中检索 url 参数

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

alert(first);
alert(second);

查看源代码

对于您的奖励:如果您在“?”处拆分字符串 并采取前半部分,这将为您提供“纯”绝对网址。

于 2012-06-21T16:45:33.287 回答
2

要回答第一个问题,您还可以尝试:

<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 是一个包含所有 get 变量和值的数组,例如: [["h", "1"], ["g", "2"]] if ?h=1&g=2

希望有帮助。

于 2012-06-21T16:53:50.570 回答
1

尝试使用JavaScript 中的 URL Parsing library解析整个 url 。

于 2012-06-21T16:56:29.330 回答