JS获取项目路径详解
来源:互联网 发布:java面向对象的4大特征 编辑:程序博客网 时间:2024/04/29 19:27
写程序的时候在JS里面需要用到项目路径, 所以网上找了个例子, 然后看了下, 差不多如下.
function getRootPath() { // 获取主机地址, 如: http://example.com:8080 var hostPath = document.location.origin; /** * 获取URL中路径部分. * * 假设当前的URL是: http://example.com:8080/project_name/test.html * 返回: /project_name/test.html */ var pathName = document.location.pathname; /**********************获取项目名****************************/ var str = pathName.substr(1); // 返回: project_name/test.html var index = str.indexOf('/'); // 获取/所在的位置. /** * 从 /project_name/test.html 截取项目名 * 这里加上1是因为index是在str的位置, 也就是在project_name/test.html中的位置 * 而这时候的截取是从/project_name/test.html这里开始的, 多了个长度, 所以要加上1. */ var projectName = pathName.substring(0, index + 1); /** * 上面的三步可以直接这么写. * var projectName = pathName.substring(0, pathName.substr(1).indexOf('/') + 1); */ return hostPath + projectName;}
这段代码还是比较通用的, 看了下, 主要就是利用document.location.pathname;
获取路径地址, 然后截取出项目名.适用于下面2种情况:
- 如果路径没有项目名:
http://example:8080/test.html
那么返回的是http://example:8080
- 如果路径带了项目名:
http://example:8080/project_name/test.html
那么返回的是:http://example:8080/project_name
如果路径没有项目名时, 是这样的情况:
var str = pathName.substr(1); //这里获取到的是test.html var index = str.indexOf('/'); // 这里返回-1.var projectName = pathName.substring(0, index + 1); // 这里截取到的是空字符串.
而如果路径带了项目名, 我在上面代码注释里已经写了步骤介绍了过程. 这里就不再啰嗦了.
另外说一下, 网上的例子在获取主机路径的时候是这样的写法.
// 先拿到当前页面的地址.var currentPagePath = document.location.href;// 然后获取URL中路径部分.var pathName = document.location.pathname;// 接着根据pathName在整个路径中的位置截取获取到主机路径.var hostPath = currentPagePath.substring(0, currentPagePath.indexOf(pathName);
但是我debug的时候发现document.location
里面有一个origin属性(但是查了国内w3c并没有这个属性的介绍), 这个属性值就是主机的路径. 所以省的我们自己计算了, 同时我也测试过在带项目路径和没有项目路径这2种情况下, origin属性都是可以拿到主机路径的.
英文的W3C Location对象介绍页面有Origin这个属性: http://w3schools.bootcss.com/jsref/prop_loc_origin.html
0 0
- JS获取项目路径详解
- JS 获取项目路径
- JS获取项目路径
- JS获取项目路径
- js获取项目路径
- js获取项目路径
- 获取项目路径 js
- JS获取项目路径
- js获取项目路径
- js获取项目路径
- js获取项目根路径
- js获取项目根路径
- js获取项目根路径
- js获取项目根路径
- js获取项目根路径
- js获取项目根路径
- js获取项目根路径
- js获取项目根路径
- 经典排序算法—冒泡排序
- 各种距离
- 检查打印机轴承装配是否正确
- redis基础操作
- MTK收购VIA IP后的CDMA开发
- JS获取项目路径详解
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest
- mvc 封装框架之关于 .haccess 文件(一)
- LeetCode3. Longest Substring Without Repeating Characters
- JFinal Web开发学习(十一)编辑已发布文章
- C语言 贪吃蛇
- MFC操作EXCEL例子
- 计算机视觉的比较有用的项目project, visual object tracking & human action recognition.
- 【Unity】(代码分析)Unity创建并保存XML