当前位置: 首页 > news >正文

用JS获取地址栏参数的方法

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

方法一:采用正则表达式获取地址栏参数:

    例如:ssologin.html?code=2

    function GetQueryString(name){

        var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");

        var r = window.location.search.substr(1).match(reg);

        if(r!=null)return unescape(r[2]);

        return null;

    }

    // 调用方法 alert(GetQueryString("参数名1"));

当然如果你没有传参数的话,比如你的地址是 abc.html 后面没有参数,那强行输出调用结果有的时候会报错:

所以我们要加一个判断 ,判断我们请求的参数是否为空,首先把值赋给一个变量,这样就不会报错了!:

    var myurl=GetQueryString("url");

    if(myurl !=null && myurl.toString().length>1){

        alert(GetQueryString("url"));

    }

方法二:

    function GetRequest() {

        var url = location.search; //获取url中"?"符后的字串

        var theRequest = new Object();

        if (url.indexOf("?") != -1) {

        var str = url.substr(1);

        strs = str.split("&");

        for(var i = 0; i < strs.length; i ++) {

        theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);

    } }

        return theRequest;

    }

    // 调用方法

    var Request = new Object();

    Request = GetRequest();

    var 参数1,参数2,参数3,参数N;

    参数1 = Request['参数1'];

方法三:传统方法

function UrlSearch() {

    var name,value;

    var str=location.href; //取得整个地址栏

    var num=str.indexOf("?") str=str.substr(num+1); //取得所有参数

    stringvar.substr(start [, length ] var arr=str.split("&"); //各个参数放到数组里

    for(var i=0;i < arr.length;i++){

        num=arr[i].indexOf("=");

        if(num>0){

        name=arr[i].substring(0,num);

        value=arr[i].substr(num+1);

        this[name]=value;

        } } }

    // 调用方法

    var Request=new UrlSearch();

    //实例化 alert(Request.id);

 

转载于:https://my.oschina.net/huibaifa/blog/1808029

相关文章:

  • QA 应该更新的测试工具
  • 智慧社区APP引领2016生活服务新趋势
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • 苹果希望政府提供iPhone解锁技术愿望落空?
  • hive理论
  • 最大化混合云收益
  • Spring请求参数校验
  • 十年之后大数据的价值主张
  • NetCore偶尔有用篇:NetCore项目添加MIME
  • amazeui学习笔记--css(常用组件15)--CSS动画Animation
  • 诺基亚推出 第一个“百岁级”路由器
  • 解决idea中maven拉不下jar包问题
  • MySQL---笔记之视图的使用详解
  • 大数据联合实验室落地成都青羊
  • 卷积神经网络(CNN)
  • Angular 4.x 动态创建组件
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • C++入门教程(10):for 语句
  • Hexo+码云+git快速搭建免费的静态Blog
  • Java Agent 学习笔记
  • JavaScript 奇技淫巧
  • JSDuck 与 AngularJS 融合技巧
  • JS变量作用域
  • js对象的深浅拷贝
  • PermissionScope Swift4 兼容问题
  • React组件设计模式(一)
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • SpriteKit 技巧之添加背景图片
  • Vue 动态创建 component
  • 大快搜索数据爬虫技术实例安装教学篇
  • 番外篇1:在Windows环境下安装JDK
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 计算机在识别图像时“看到”了什么?
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 精彩代码 vue.js
  • 你真的知道 == 和 equals 的区别吗?
  • 前端自动化解决方案
  • 容器服务kubernetes弹性伸缩高级用法
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 手写一个CommonJS打包工具(一)
  • 跳前端坑前,先看看这个!!
  • 我感觉这是史上最牛的防sql注入方法类
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 鱼骨图 - 如何绘制?
  • linux 淘宝开源监控工具tsar
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 函数计算新功能-----支持C#函数
  • ​secrets --- 生成管理密码的安全随机数​
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • $.ajax()
  • (¥1011)-(一千零一拾一元整)输出
  • (a /b)*c的值
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六