我想从链接获取URL请求变量并将它们传递给CFC组件。我已经有了处理所有内容的工作代码(jQuery,AJAX,CFC),但我只需要从特定链接中获取#URL.whatever#
。
在Coldfusion代码中,我可以使用#URL.whatever#
轻松完成,但不知道如何从客户端获取它。另外,如果我一直在使用IIS URL重写,这有关系吗?我目前正在重写www.website.com/page.cfm?category=cat1
到www.website.com/page/cat1
。
在两种情况下,Coldfusion都可以使用#URL.category#
访问请求变量,绝对没有区别。那么我怎么能用JavaScript / jQuery做到这一点,它应该不复杂,对吧?
答案 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);