我正在使用javascript,并希望获取我拥有的URL字符串,并将其分解为其组件,例如主机,路径和查询参数。
我需要这样做才能获得一个查询参数,它本身就是一个URL,因此用原始的URL字符串编码。
我觉得应该有一个简单的方法在Javascript中执行此操作。也许看起来像这样:
var what_I_Want = url("http://www.domain.com?queryArg1=somequeryargument").getQueryArgumentValue("queryArg1");
答案 0 :(得分:15)
parseUri功能可以完成您需要的一切
修改强>
或者,您可以get the DOM to do the hard work为您访问,并为URL的不同部分访问新创建的a
对象的属性。
答案 1 :(得分:3)
<script type="text/javascript" language="javascript">
newURL = window.location.protocol + "//" + window.location.host + "/" + window.location.pathname;
</script>
Hope this will help..
答案 2 :(得分:2)
在javascript中你可以通过对params使用split()并使用协议和域的位置对象来实现这一点 - 就像Carl建议的那样
您也可以使用parseUri作为Tak建议
还有一个jQuery插件,如果您已在项目中使用jQuery,则可以更轻松地进行解析:https://github.com/allmarkedup/jQuery-URL-Parser#readme
示例:
$.url('http://allmarkedup.com?sky=blue&grass=green').param('sky'); // returns 'blue'
答案 3 :(得分:1)
可能不是最好的方法,但在JavaScript中获取查询字符串的简单方法是使用以下内容:
a = "http://www.domain.com?queryArg1=somequeryargument";
query = a.substring(a.indexOf('?')+1);
然后,您可以根据&amp; s分拆查询,然后再分析=以获取您需要的任何参数。
很抱歉,如果这不是一个非常有用的技术方法:P
编辑: 刚刚编写了一个快速的小JavaScript对象来为您获取URL查询参数(有点像)。只用铬合金测试过,但从理论上说它应该可以工作:)
//Quick and dirty query Getter object.
function urlQueryGetter(url){
//array to store params
var qParam = new Array();
//function to get param
this.getParam = function(x){
return qParam[x];
}
//parse url
query = url.substring(url.indexOf('?')+1);
query_items = query.split('&');
for(i=0; i<query_items.length;i++){
s = query_items[i].split('=');
qParam[s[0]] = s[1];
}
}
//Useage
var bla = new urlQueryGetter("http://www.domain.com?queryArg1=somequeryargument&test=cheese");
alert(bla.getParam('test'));