0

我想从链接中获取 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 来做到这一点,它不应该很复杂,对吧?

4

3 回答 3

0

This question提出了一种获取变量的方法,我发现它比Blaise的正则表达式更容易理解。它还 使用 Dojo 正确地从 URL Get Querystring 中取消编码值

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);
于 2012-10-23T19:46:58.427 回答
0

好吧,我们需要更多详细信息来建议如何获取对链接的引用,但这样的事情应该可以工作:

HTML

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

JS

var href = document.getElementById( 'mylink' ).href;
于 2012-10-23T19:31:34.703 回答
0

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

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

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

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

我不能确定它会如何处理 URL 重写。

网址变量:

function getUrlVars() {
    var vars = {};
    var parts =window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
        vars[ decodeURIComponent(key)] = decodeURIComponent(value);
    });
    return vars;
}
于 2012-10-23T19:31:40.363 回答