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 相关文章推荐
jQuery数据缓存功能的实现思路及简单模拟
May 27 Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
Jun 02 Javascript
js特殊字符转义介绍
Nov 05 Javascript
jQuery操作Select的Option上下移动及移除添加等等
Nov 18 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
Mar 03 Javascript
详解Angular-cli生成组件修改css成less或sass的实例
Jul 27 Javascript
js实现上传并压缩图片效果
Jan 10 Javascript
Vue加载组件、动态加载组件的几种方式
Aug 31 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
Oct 20 Javascript
js笔试题-接收get请求参数
Jun 15 Javascript
vue router 跳转时打开新页面的示例方法
Jul 28 Javascript
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
Jan 29 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基础知识回顾
2012/08/16 PHP
关于PHP实现异步操作的研究
2013/02/03 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
2020/10/27 PHP
20个非常棒的 jQuery 幻灯片插件和教程分享
2011/08/23 Javascript
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
中止javascript执行的方法
2014/02/14 Javascript
JS实现图片无间断滚动代码汇总
2014/07/30 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
JavaScript中Window对象的属性及事件
2015/12/25 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
2017/05/03 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
详解win7 cmd执行vue不是内部命令的解决方法
2017/07/27 Javascript
js 实现复选框只能选择一项的示例代码
2018/01/23 Javascript
微信小程序使用二次贝塞尔曲线画波浪
2018/12/25 Javascript
vue中子组件传递数据给父组件的讲解
2019/01/27 Javascript
详解javascript replace高级用法
2019/02/17 Javascript
Seajs源码详解分析
2019/04/02 Javascript
vue项目前端错误收集之sentry教程详解
2019/05/27 Javascript
vue如何实现自定义底部菜单栏
2019/07/01 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
2020/08/08 Javascript
Vue filter 过滤器、以及在table中的使用介绍
2020/09/07 Javascript
Python在Windows和在Linux下调用动态链接库的教程
2015/08/18 Python
Python多线程及其基本使用方法实例分析
2019/10/29 Python
使用pyinstaller逆向.pyc文件
2019/12/20 Python
python爬虫数据保存到mongoDB的实例方法
2020/07/28 Python
python中random模块详解
2021/03/01 Python
Pytorch之扩充tensor的操作
2021/03/04 Python
如何填写个人简历自我评价
2013/12/10 职场文书
开学季活动策划方案
2014/02/28 职场文书
《孙权劝学》教学反思
2014/04/23 职场文书
科长个人四风问题整改措施思想汇报
2014/10/13 职场文书
房屋认购协议书
2015/01/29 职场文书
消防演习通知
2015/04/25 职场文书
道歉信范文
2015/05/12 职场文书
SpringBoot整合Minio文件存储
2022/04/03 Java/Android
MySQL transaction事务安全示例讲解
2022/06/21 MySQL