如何使用jquery / javascript获取url变量?

时间:2012-10-23 19:28:27

标签: javascript jquery cfc

我想从链接获取URL请求变量并将它们传递给CFC组件。我已经有了处理所有内容的工作代码(jQuery,AJAX,CFC),但我只需要从特定链接中获取#URL.whatever#

在Coldfusion代码中,我可以使用#URL.whatever#轻松完成,但不知道如何从客户端获取它。另外,如果我一直在使用IIS URL重写,这有关系吗?我目前正在重写www.website.com/page.cfm?category=cat1www.website.com/page/cat1

在两种情况下,Coldfusion都可以使用#URL.category#访问请求变量,绝对没有区别。那么我怎么能用JavaScript / jQuery做到这一点,它应该不复杂,对吧?

3 个答案:

答案 0 :(得分:0)

好吧,我们需要更多详细信息来建议如何获得对链接的引用,但是这样的事情应该有效:

HTML

<a id="mylink" href="www.website.com/page.cfm?category=cat1">Website.com</a>

JS

var href = document.getElementById( 'mylink' ).href;

答案 1 :(得分:0)

是的,你想要使用的是解析window.location.href变量的函数。

var URL_PARAM = getUrlVars()["category"];

或者,如果您网页的网址是www.website.com/page.cfm?category=cat1&anotherparam=12345

var URL_PARAM1 = getUrlVars()["category"];
var URL_PARAM2 = getUrlVars()["anotherparam"];

我无法确定如何使用网址重写。

URLVars:

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

答案 2 :(得分:0)

这个问题提出了一种获取变量的方法,我发现它比Blaise的正则表达式更容易理解。它还正确地取消了URL Get Querystring with Dojo

中的值的编码
function getUrlParams() {

  var paramMap = {};
  if (location.search.length == 0) {
    return paramMap;
  }
  var parts = location.search.substring(1).split("&");

  for (var i = 0; i < parts.length; i ++) {
    var component = parts[i].split("=");
    paramMap [decodeURIComponent(component[0])] = decodeURIComponent(component[1]);
  }
  return paramMap;
}

var params = getUrlParams();
console.log(params.myParam);