专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Javascript教程 » javascript函数:用JavaScript 处理 URL 的两个函数代码 »正文

javascript函数:用JavaScript 处理 URL 的两个函数代码

来源: 发布时间:星期六, 2008年12月27日 浏览:21次 评论:0
function request(paras){ //获取 url 参数值不区分大小写,如无此参数返回空串.
var url = location.href;
var paraString = url.sub(url.indexOf("?")+1,url.length).split("&");
var paraObj = {}
for (i=0; j=paraString[i]; i){
paraObj[j.sub(0,j.indexOf("=")).toLowerCase] = j.sub(j.indexOf("=")+1,j.length);
}
var Value = paraObj[paras.toLowerCase];
(typeof(Value)"und"){
"";
}{
Value;
}
}
function redirect{ //第个参数是当前url,如 http://localhost/demo.asp?xxx=zzz, 第 2个及以后参数形式必须为 xxx=yyy, mm=bbbbb 最终跳转url为 http://localhost/demo.asp?xxx=yyy&aaa=bbb
(arguments.length1){
location.href = arguments[0];
;
}{
var paraObj = {};
(arguments[0].indexOf("?")!=-1){
var curUrlParas = arguments[0].sub(arguments[0].indexOf("?")+1,arguments[0].length).split("&");
for (i=0; j=curUrlParas[i]; i){
paraObj[j.sub(0,j.indexOf("=")).toLowerCase] = j.sub(j.indexOf("=")+1,j.length);
}
}
for (i=1; j=arguments[i]; i){
paraObj[j.sub(0,j.indexOf("=")).toLowerCase] = j.sub(j.indexOf("=")+1,j.length);
}
var URL= "";
for (key in paraObj){
URL key+"="+paraObj[key]+"&";
}
(arguments[0].indexOf("?")!=-1){
URL = arguments[0].sub(0,arguments[0].indexOf("?")+1)+URL.sub(0,URL.length-1);
}{
URL = arguments[0]+"?"+URL.sub(0,URL.length-1);
}
location.href = URL;
;
}
}

第 2个redirect如果只有个参数时就是简单重定向当有2个或以上参数时就能动态指定目url可用于翻页功能比如 redirect("http://www.xxx.com/list.asp?page=1","page="+parseInt(request("page"))+1)还可用于url类型搜索如:redirect("http://www.xxx.com/search.asp","range="+escape($("range").value),"keyword="+escape($("keyword").value))url操作变得简单起来
redirect 核心是建立个url参数表(hash table)第 2个及以后参数都是添加到该hash table中最后把该表序列化为目url
刚发完日志就想到可以再改进增加个参数决定是否用新窗口打开目url

/*
个参数是当前url,如 http://localhost/demo.asp?xxx=zzz,
第 2个及以后参数形式必须为 xxx=yyy, mm=bbbbb
最终跳转url为 http://localhost/demo.asp?xxx=yyy&aaa=bbb
*/
function redirect{
(arguments.length0){
;
}
(arguments.length1){
location.href = arguments[0];
;
} (arguments.length2){
(arguments[1]true)?window.open(arguments[0]):location.href = arguments[0];
;
}{
var paraObj = {};
(arguments[0].indexOf("?")!=-1){
var curUrlParas = arguments[0].sub(arguments[0].indexOf("?")+1,arguments[0].length).split("&");
for (i=0; j=curUrlParas[i]; i){
paraObj[j.sub(0,j.indexOf("=")).toLowerCase] = j.sub(j.indexOf("=")+1,j.length);
}
}
for (i=2; j=arguments[i]; i){
paraObj[j.sub(0,j.indexOf("=")).toLowerCase] = j.sub(j.indexOf("=")+1,j.length);
}
var URL= "";
for (key in paraObj){
URL key+"="+paraObj[key]+"&";
}
(arguments[0].indexOf("?")!=-1){
URL = arguments[0].sub(0,arguments[0].indexOf("?")+1)+URL.sub(0,URL.length-1);
}{
URL = arguments[0]+"?"+URL.sub(0,URL.length-1);
}
arguments[1]true?window.open(URL):location.href = URL;
;
}
}

根据昨天临下班前想法再修改把第 2个参数放到最后面去
/*
Use Age:
redirect(url,[paras_1],[paras_2],...,[paras_n],[Win])
paras_n: url参数形式如 page=1 或 type=s 等
Win: 最后个参数布尔类型为true时用新窗口(window.open)打开url否则用当前窗口(location.open)打开默认值为 false
Example:
redirect("http://www.google.com/search","q=hello","start=20",true); //将在google搜索"hello"并翻到第3页并用新窗口打开
redirect("http://www.xxx.com/listpage.asp","page="+parseInt(request("page"))+1); //翻页功能中“下页”
*/
function redirect{
(arguments.length0){
;
}
(arguments.length1){
location.href = arguments[0];
;
} (arguments.length2 && typeof(arguments[1])"boolean"){
(arguments[1]true)?window.open(arguments[0]):location.href = arguments[0];
;
}{
var paraObj = {};
(arguments[0].indexOf("?")!=-1){
var curUrlParas = arguments[0].sub(arguments[0].indexOf("?")+1,arguments[0].length).split("&");
for (i=0; j=curUrlParas[i]; i){
paraObj[j.sub(0,j.indexOf("=")).toLowerCase] = j.sub(j.indexOf("=")+1,j.length);
}
}
var j = arguments.length;
for (i=1; i (typeof(arguments[i])"boolean"){
;
}
paraObj[arguments[i].sub(0,arguments[i].indexOf("=")).toLowerCase] = arguments[i].sub(arguments[i].indexOf("=")+1,arguments[i].length);
}
var URL= "";
for (key in paraObj){
URL key+"="+paraObj[key]+"&";
}
(arguments[0].indexOf("?")!=-1){
URL = arguments[0].sub(0,arguments[0].indexOf("?")+1)+URL.sub(0,URL.length-1);
}{
URL = arguments[0]+"?"+URL.sub(0,URL.length-1);
}
(typeof(arguments[length-1])"boolean" && arguments[length-1]true){
window.open(URL);
}{
location.href = URL;
}
;
}
}

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: