2012-10-23 11 views
0

我想从链接中获取URL请求变量并将它们传递给CFC组件。我已经有了可以处理所有事情的工作代码(jQuery,AJAX,CFC),但我只需要从特定链接中获取#URL.whatever#如何使用jquery/javascript获取url变量?

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

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

+0

如果需要,您需要自己写。当JavaScript是第二个文件夹是页面的子文件夹时,您无法知道您已将第二个文件夹映射到类别。 – scottheckel

+0

这样的事情? http://jsfiddle.net/7MAUv/10/ – Ghostman

+0

你可以解释你需要什么? – Ghostman

回答

0

好吧,我们需要更多的细节,建议如何去链接的引用,但这样的事情应该工作:

HTML

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

JS

var href = document.getElementById('mylink').href; 
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重写进行操作。

URLVars:

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

getUrlVars()定义在哪里?在我的控制台尝试它没有工作.. –

+0

是的抱歉回合,忘了我在我的主要js文件。编辑原始帖子。 –

+0

你的'getUrlVars'忘记到'decodeURIComponent' –

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); 
+0

我刚刚测试过你的代码,它的诀窍:)我怎么能手动设置类别为所有如果(location.search.length == 0)可能是这样的var var paramMap = All;这是正确的 – user1751287

+0

@ user1751287不,这是用于检索的代码,而不是用于设置url参数,这将是一个完全不同的问题 –

+0

来澄清页面不包含URL参数(www.website.com/page。cfm)我想将它设置为All。这可能吗? – user1751287