zoukankan      html  css  js  c++  java
  • 用js获取当前页面的url的相关信息方法

    当前页面对应的URL的一些属性:

    ( http://bbs.xxx.net/forum.php?mod=viewthread&tid=2709692&page=1&extra=#pid23817304)

    1)当前页面的完整的URL: window.location.href

    2)当前页面的URL的pathname: window.location.pathname (http://bbs.xxx.net/forum.php)

    3)当前页面的URL的问号后面的查询部分: window.location.search (?mod=viewthread&tid=2709692&page=1&extra=#pid23817304)

    4)当前页面的URL的在井号“#”后面的部分:window.location.hash (pid23817304)

    5)协议:window.location.protocol

    6)端口:window.location.port

    7)获取查询部分某个key对应的值:

    var common = {};
    
    common.getQueryString = function(name){
         var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
         var r = window.location.search.substr(1).match(reg);
         if (r != null) 
             return unescape(r[2]); 
         return null;
    }

    这里如何理解正则表达式:new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i") 呢?

    ?mod=viewthread&tid=2709692&page=1

    window.location.search.substr(1) 去掉了最初的问号: ? ,得到 mod=viewthread&tid=2709692&page=1

    "(^|&)" + name 表示以name开头,比如name="mod" 时,就是以'mod'开头;而当name="tid"时,就是匹配 &tid 了。

    "=([^&]*)(&|$)" 中的 ([^&]*) 表示非 $ 字符可以出现任意次,也就是匹配非 & 的字符;然后最后的 (&|$) 表示最后是 & 比如name="tid"时,或者$比如name="page" 时。

    8)获取所有的查询部分:

    function GetRequest(){
        var url = window.location.search; // 获取url中"?"符后的字串
        var theRequest = {};  // 定义一个对象
        if(url.indexOf("?") != -1){
            var str = url.substr(1);
            var strs = str.split("&");
            for(var i = 0; i < strs.length; i++){
                theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
            }
        }
        return theRequest;
    }

    将查询部分的键值对,作为一个对象返回,key为对象的属性,value为对象属性的值(其实也相当于一个map)。

  • 相关阅读:
    4 Apr 18 软件开发目录 logging模块的使用 序列化(Json, Pickle) os模块
    3 Apr 18 内置函数 列表生成式与生成器表达式 模块的使用之import 模块的使用之from…import…
    2 Apr 18 三元表达式 函数递归 匿名函数 内置函数
    30 Mar 18 迭代器 生成器 面向过程的编程
    29 Mar 18 函数 有参、无参装饰器
    28 Mar 18 函数
    27 Mar 18 函数的参数
    26 Mar 18 函数介绍
    23 Mar 18 文件处理
    22 Mar 18 补充数据类型+字符编码+文件处理
  • 原文地址:https://www.cnblogs.com/digdeep/p/4592695.html
Copyright © 2011-2022 走看看