JavaScript中有时需要用到当前的请求路径等涉及到url的情况,正常情况下我们可以使用location对象来获取我们需要的信息,本文从另外一个途径来解决这个问题,而且更加巧妙

方法如下:

  1. function parseURL(url) {
  2. var a =  document.createElement('a');
  3. //创建一个链接
  4. a.href = url;
  5. return {
  6. source: url,
  7. protocol: a.protocol.replace(':',''),
  8. host: a.hostname,
  9. port: a.port,
  10. query: a.search,
  11. params: (function(){
  12. var ret = {},
  13. seg = a.search.replace(/^\?/,'').split('&'),
  14. len = seg.length, i = 0, s;
  15. for (;i<len;i++) {
  16. if (!seg[i]) { continue; }
  17. s = seg[i].split('=');
  18. ret[s[0]] = s[1];
  19. }
  20. return ret;
  21. })(),
  22. file: (a.pathname.match(/\/([^\/?#]+)$/i) || [,''])[1],
  23. hash: a.hash.replace('#',''),
  24. path: a.pathname.replace(/^([^\/])/,'/$1'),
  25. relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [,''])[1],
  26. segments: a.pathname.replace(/^\//,'').split('/')
  27. };
  28. }

复制代码

使用方法如下:

  1. var myURL = parseURL('http://abc.com:8080/dir/index.html?id=255&m=hello#top');
  2. myURL.file;     // = 'index.html'
  3. myURL.hash;     // = 'top'
  4. myURL.host;     // = 'abc.com'
  5. myURL.query;    // = '?id=255&m=hello'
  6. myURL.params;   // = Object = { id: 255, m: hello }
  7. myURL.path;     // = '/dir/index.html'
  8. myURL.segments; // = Array = ['dir', 'index.html']
  9. myURL.port;     // = '8080'
  10. myURL.protocol; // = 'http'
  11. myURL.source;   // = 'http://abc.com:8080/dir/index.html?id=255&m=hello#top'

复制代码

一个不错的JavaScript解析浏览器路径方法的更多相关文章

  1. 一个不错的JavaScript解析浏览器路径方法(转)

    JavaScript中有时需要用到当前的请求路径等涉及到url的情况,正常情况下我们可以使用location对象来获取我们需要的信息,本文从另外一个途径来解决这个问题,而且更加巧妙 方法如下: fun ...

  2. Js解析浏览器路径的方法

    方法如下:function parseURL(url) { var a = document.createElement('a'); //创建一个链接 a.href = url; return { s ...

  3. JavaScript获取浏览器信息的方法

    Window有navigator对象让我们得知浏览器的全部信息.我们可以利用一系列的API函数得知浏览器的信息. JavaScript代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 1 ...

  4. javascript的window.ActiveXObject对象,区别浏览器的方法

    (window.ActiveXObject)的作用,用来判断浏览器是否支持ActiveX控件,如果支持ActiveX控件,我们可以利用var xml=new ActiveXObject("M ...

  5. C#字符串数组排序 C#排序算法大全 C#字符串比较方法 一个.NET通用JSON解析/构建类的实现(c#) C#处理Json文件 asp.net使用Jquery+iframe传值问题

    C#字符串数组排序   //排序只带字符的数组,不带数字的 private   string[]   aa   ={ "a ", "c ", "b & ...

  6. Javascript调用C#后台方法及JSon解析

    Javascript调用C#后台方法及JSon解析   如何使用Ajax 调用C# 后台方法. 本文目录 如何使用Ajax 调用C# 后台方法. 1.后台(.cs)测试方法 2.前台调用(javasc ...

  7. 浏览器中“JavaScript解析器”工作原理

    浏览器在读取HTML文件的时候,只有当遇到<script>标签的时候,才会唤醒所谓的“JavaScript解析器”开始工作. JavaScript解析器工作步骤: 1.“找一些东西”: v ...

  8. Javascript创建对象几种方法解析

    Javascript创建对象几种方法解析 Javascript面向对象编程一直是面试中的重点,将自己的理解整理如下,主要参考<Javascript高级程序设计 第三版>,欢迎批评指正. 通 ...

  9. 原生JavaScript常用本地浏览器存储方法一(方法类型)

    有时需要将网页中的一些数据保存在浏览器端.好处就是当下次访问页面时,直接就可以从本地读取数据,不需要再次向服务器请求数据.目前常用的有以下几种方法: 1.cookie cookie会随着每次HTTP请 ...

随机推荐

  1. nginx的相关信息

    Nginx安装 nginx官网:https://nginx.org/ 安装准备:nginx依赖pcre库,要先安装pcre(nginx在rewrite时需要解析正则,PCRE是正则解析库) yum i ...

  2. Xcode8免证书生产IPA打包文件

    免证书生产IPA打包文件   修改Xcode配置文件: 关闭Xcode.然后打开“其他-终端”,就是命令行工具 cd /Applications/Xcode.app/Contents/Develope ...

  3. Found multiple occurrences of org.json.JSONObject on the class path:

    Question: Found multiple occurrences of org.json.JSONObject on the class path: jar:file:/C:/Users/nm ...

  4. Codeforces Round #430 (Div. 2) C. Ilya And The Tree

    地址:http://codeforces.com/contest/842/problem/C 题目: C. Ilya And The Tree time limit per test 2 second ...

  5. linux上mysql访问:Access denied for user 'agtipay'@'iZm5ebiyb4f90ga9xiycgsZ' (using password: YES)

    公司的聚合支付测试环境出了一个问题(agtipay用户访问数据的时候出现如题错误),快搞死我两天时间(原谅技术不才),如题.首先明确一下问题: 1.访问拒绝,说明数据库连接这里有问题,数据库连接访问拒 ...

  6. Android-服务中监听电源键和Home键的广播、在锁屏下仍然工作的方法

    Android-服务中监听电源键和Home键的广播  http://blog.csdn.net/u014657752/article/details/49512485 Android开发之如何监听让服 ...

  7. LINUX SHELL 笔记 02: 变量初识

    https://www.shellscript.sh/variables1.html 变量是一个可操作(读.写)的内存块的名字. 尝试-1 创建一个变量: root@iZwz:~/labs# sh m ...

  8. RabbitMQ学习之(四)_PHP操作RabbitMQ简单Demo

    原理流程 生产者主要做的是:创建连接-->创建channel-->创建交换机对象-->发送消息 消费者主要做的是:创建连接-->创建channel-->创建交换机--&g ...

  9. MySQL的索引是什么?怎么优化?

    索引类似大学图书馆建书目索引,可以提高数据检索的效率,降低数据库的IO成本.MySQL在300万条记录左右性能开始逐渐下降,虽然官方文档说500~800w记录,所以大数据量建立索引是非常有必要的.My ...

  10. 延迟环境变量扩展(bat)

    延迟环境变量扩展(bat) 之前遇到一些环境变量的问题,简单记录下 From:http://www.cnblogs.com/dongzhiquan/archive/2012/09/05/2671218 ...