我的理解是这样的哈,可以直接用遍历的方式
<script type="text/javascript">function http_builder_url(url, data) {
if(typeof(url) == 'undefined' || url == null || url == '') {
return ''
}
if(typeof(data) == 'undefined' || data == null || typeof(data) != 'object') {
return ''
}
url += (url.indexOf("?") != -1) ? "" : "?"
for(var k in data) {
url += ((url.indexOf("=") != -1) ? "&" : "") + k + "=" + encodeURI(data[k])
console.log(url)
}
return url
}
var param = {'name':'ddd', 'age':19}
var url = "http://www.baidu.com/a.html"
alert(http_builder_url(url, param))
//得到的结果:http://www.baidu.com/a.html?name=ddd&age=19
</script>
我来回答一下:
首先要遍历对象属性,然后再加到链接后面
对象属性用 &链接,链接后面用?连接:
function createURL (url,param/*链接和参数*/){Object.each(param,function(item,key){
var link = '&' + key + "=" + item
myURL.link += link
})
myURL.link = url + "?" + myURL.link.substr(1)
return myURL.link.replace(' ','')
}
使用js对当前的URL进行操作,可以使用内置对象window.location;window.location有以下属性:
window.location.href:取得当前地址栏中的完整URL,可以通过赋值改变当前地址栏中的URL;
window.location.search 取得当前URL的参数部分,即“?”后面的部分(包括问号),可以通过赋值改变URL的参数部分;
window.location.hash:取得当前URL中包含的锚记,即“#”后面的部分(包括#),可以通过赋值改变URL的锚记部分
window.location.host:取得当前URL中的主机信息,包括端口号,可以通过赋值改变主机信息;
window.location.hostname:取得当前URL中的域名部分,不包括端口号,可以通过赋值改变域名;
window.location.port:取得当前URL中的端口号,可以通过赋值改变端口号;
window.location.pathname:取得当前URL中的路径信息,即域名与参数之间的部分,可以通过赋值改变当前URL的路径;
window.location.protocol:取得当前URL的协议部分,比如http:,https:等,可以通过赋值改变URL的协议部分;
window.location有一下方法:
window.location.replace(url):用传入的URL字符串替代当前的URL,该方法会将历史记录中的URL一并替换掉,也就是说,这个方法会覆盖之前的历史记录;
window.location.reload():重新加载当前URL,相当于刷新;
window.location.assign(url):加载传入的URL,该方法不会覆盖之前的历史记录;