JavaScript操作URL的相关内容集锦


Posted in Javascript onOctober 29, 2015

---恢复内容开始---

1.location.href.....

(1)self.loction.href="http://www.cnblogs.com/url"
       window.location.href="http://www.cnblogs.com/url"    以上两个用法相同均为在当前页面打开URL页面
(2)this.location.href="http://www.cnblogs.com/url"    当前页面打开URL
(3) parent.location.href="http://www.cnblogs.com/url"   在父页面打开新页面,如果页面中自定义了frame,那么可将parent self top换为自定义frame的名称,效果是在frame窗口打开url地址
(4) top.location.href="http://www.cnblogs.com/url"   在顶层页面打开新页面

2. 关于刷新页面

 (1)window.location.href=http://www.cnblogs.com/nana-share/p/window.location.href
 (2)window.location.Reload()
    都是刷新当前页面。区别在于是否有提交数据。当有提交数据时,window.location.Reload()会提示是否提交,window.location.href=http://www.cnblogs.com/nana-share/p/window.location.href;则是向指定的url提交数据

3.

 (1)第一段为实际在用的

function getURLParameter(name)
 {2 3  

 return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search) || [, ""])[1].replace(/\+/g, '%20')) || null; //构造一个含有目标参数的正则表达式对象4 5 
}

//获取url中的参数2     
function getUrlParam(name)
{3      
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象4      
var r = window.location.search.substr(1).match(reg); //匹配目标参数5      
if (r != null) return unescape(r[2]); return null; //返回参数值6    
}

  例如像获取下面链接的邮箱

http://agent/index.php/Home/Login/getpwd_check_email?code=824790&to=1321136493@qq.com

var mail = getURLParameter('to');

---恢复内容结束---

下面再来看一下js操作url的代码

代码很简单,主要一个思路是把url参数解析为js对象,再做增、删、改、查操作就很方便了~,这里做笔记。

var LG=(function(lg){
  var objURL=function(url){
    this.ourl=url||window.location.href;
    this.href="";//?前面部分
    this.params={};//url参数对象
    this.jing="";//#及后面部分
    this.init();
  }
  //分析url,得到?前面存入this.href,参数解析为this.params对象,#号及后面存入this.jing
  objURL.prototype.init=function(){
    var str=this.ourl;
    var index=str.indexOf("#");
    if(index>0){
      this.jing=str.substr(index);
      str=str.substring(0,index);
    }
    index=str.indexOf("?");
    if(index>0){
      this.href=str.substring(0,index);
      str=str.substr(index+1);
      var parts=str.split("&");
      for(var i=0;i<parts.length;i++){
        var kv=parts[i].split("=");
        this.params[kv[0]]=kv[1];
      }
    }
    else{
      this.href=this.ourl;
      this.params={};
    }
  }
  //只是修改this.params
  objURL.prototype.set=function(key,val){
    this.params[key]=val;
  }
  //只是设置this.params
  objURL.prototype.remove=function(key){
    this.params[key]=undefined;
  }
  //根据三部分组成操作后的url
  objURL.prototype.url=function(){
    var strurl=this.href;
    var objps=[];//这里用数组组织,再做join操作
    for(var k in this.params){
      if(this.params[k]){
        objps.push(k+"="+this.params[k]);
      }
    }
    if(objps.length>0){
      strurl+="?"+objps.join("&");
    }
    if(this.jing.length>0){
      strurl+=this.jing;
    }
    return strurl;
  }
  //得到参数值
  objURL.prototype.get=function(key){
    return this.params[key];
  }  
  lg.URL=objURL;
  return lg;
}(LG||{}));

LG只是我个人共同JS的名称空间,无他。调用:

var myurl=new LG.URL("http://www.baidu.com?a=1");
  myurl.set("b","hello"); //添加了b=hello
  alert (myurl.url());
  myurl.remove("b"); //删除了b
  alert(myurl.get ("a"));//取参数a的值,这里得到1
  myurl.set("a",23); //修改a的值为23
  alert (myurl.url());
Javascript 相关文章推荐
学习ExtJS Panel常用方法
Oct 07 Javascript
数组方法解决JS字符串连接性能问题有争议
Jan 12 Javascript
jQuery实现的Div窗口震动特效
Jun 09 Javascript
bootstrap改变按钮加载状态
Dec 01 Javascript
JavaScript中数据结构与算法(二):队列
Jun 19 Javascript
js实现网站最上边可关闭的浮动广告条代码
Sep 04 Javascript
jsonp跨域请求数据实现手机号码查询实例分析
Dec 12 Javascript
JS面向对象编程详解
Mar 06 Javascript
Bootstrap页面标题Page Header的实现方法
Mar 22 Javascript
Angular.JS中的this指向详解
May 17 Javascript
vue滚动插件better-scroll使用详解
Oct 18 Javascript
JavaScript实现移动小精灵的案例代码
Dec 12 Javascript
js实现完美兼容各大浏览器的人民币大小写相互转换
Oct 29 #Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
Oct 28 #Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(上)
Oct 28 #Javascript
自己动手写的jquery分页控件(非常简单实用)
Oct 28 #Javascript
Jquery日历插件制作简单日历
Oct 28 #Javascript
使用CoffeeScrip优美方式编写javascript代码
Oct 28 #Javascript
开启Javascript中apply、call、bind的用法之旅模式
Oct 28 #Javascript
You might like
PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
2010/07/09 PHP
ajax取消挂起请求的处理方法
2013/03/18 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
php post json参数的传递和接收处理方法
2018/05/31 PHP
一个加密JavaScript的开源工具PACKER2.0.2
2006/11/04 Javascript
Js动态添加复选框Checkbox的实例方法
2013/04/08 Javascript
js导入导出excel(实例代码)
2013/11/25 Javascript
html5 canvas js(数字时钟)实例代码
2013/12/23 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
2015/06/23 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
Angularjs添加排序查询功能的实例代码
2017/10/24 Javascript
mac上配置Android环境变量的方法
2018/07/08 Javascript
通过封装scroll.js 获取滚动条的值
2018/07/13 Javascript
vue与bootstrap实现简单用户信息添加删除功能
2019/02/15 Javascript
微信小程序实现人脸识别登陆的示例代码
2019/04/02 Javascript
Seajs源码详解分析
2019/04/02 Javascript
Vue数据绑定简析小结
2019/05/07 Javascript
微信小程序自定义多列选择器使用详解
2019/06/21 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
vue导入.md文件的步骤(markdown转HTML)
2020/12/31 Vue.js
原生JavaScript实现留言板
2021/01/10 Javascript
Python操作串口的方法
2015/06/17 Python
对于Python中RawString的理解介绍
2016/07/07 Python
快速实现基于Python的微信聊天机器人示例代码
2017/03/03 Python
python中利用xml.dom模块解析xml的方法教程
2017/05/24 Python
Python基于回溯法子集树模板实现图的遍历功能示例
2017/09/05 Python
用python代码将tiff图片存储到jpg的方法
2018/12/04 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
利用python计算时间差(返回天数)
2019/09/07 Python
使用PyCharm官方中文语言包汉化PyCharm
2020/11/18 Python
CSS3绘制超炫的上下起伏波动进度加载动画
2016/04/21 HTML / CSS
Roots加拿大官网:加拿大休闲服饰品牌
2016/10/24 全球购物
酒店门卫岗位职责
2013/12/29 职场文书
交警个人先进事迹材料
2014/05/11 职场文书
经营理念口号
2014/06/21 职场文书
python中的sys模块和os模块
2022/03/20 Python