Javascript中使用A标签获取当前目录的绝对路径方法


Posted in Javascript onMarch 02, 2015

一谈到路径相关的问题,大家都会往window.location上想,确实这个对象提供了相当多的路径信息,其中常用的就包括:

1.location.href:当前页面的完整URL
2.location.pathname:当前URL中的路径名
3.location.hash:当前URL中的锚点
4.location.search:当前URL中的查询参数

然而,location没有一个属性能直接获得当前目录(不含文件名)的绝对路径。通过Google我发现了一些错误的方法,比如说把URL通过“/”分离成数组,把数组的最后一项去掉以后再连接成字符串。但如果URL中没有指定文件名,结果就大错特错了。

根据以往编码的经验,a元素的href属性总是会返回绝对路径,也就是说它具有把相对路径转成绝对路径的能力。使用下面的代码尝试了一下,果然成了:

var a = document.createElement('a');

a.href = './';

alert(a.href);

a = null;

很不幸地,此方法在老旧的IE 6/7下无效,当执行alert(a.href)时,弹出的仍然是“./”。后来,我发现在Stackoverflow上也有人提出了这个问题,而解决方法也是很简单的,只要把a通过innerHTML注入就可以了:
var div = document.createElement('div');

div.innerHTML = '<a href="./"></a>";

alert(div.firstChild.href);

div = null;

有人可能会问:为何不用正则表达式?我的答案是:要考虑有无文件名的情况、有无锚点的情况、有无查询参数的情况,这条正则表达式可能会挺复杂的。
Javascript 相关文章推荐
Javascript-Mozilla和IE中的一个函数直接量的问题
Jan 09 Javascript
Input 特殊事件onpopertychange和oninput
Jun 17 Javascript
客户端js判断文件类型和文件大小即限制上传大小
Nov 20 Javascript
escape函数解决js中ajax传递中文出现乱码问题
Oct 30 Javascript
jquery操作 iframe的方法
Dec 03 Javascript
js+css实现导航效果实例
Feb 10 Javascript
jQuery读取XML文件内容的方法
Mar 09 Javascript
javascript实现网页背景烟花效果的方法
Aug 06 Javascript
理解javascript中的with关键字
Feb 15 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
May 05 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
Nov 18 Javascript
基于mpvue的小程序项目搭建的步骤
May 22 Javascript
JavaScript日期类型的一些用法介绍
Mar 02 #Javascript
了解Javascript的模块化开发
Mar 02 #Javascript
JS实现的4种数字千位符格式化方法分享
Mar 02 #Javascript
js实现图片漂浮效果的方法
Mar 02 #Javascript
ECMAScript 5中的属性描述符详解
Mar 02 #Javascript
JS+CSS实现可以凹陷显示选中单元格的方法
Mar 02 #Javascript
JavaScript数组常用方法
Mar 02 #Javascript
You might like
用Json实现PHP与JavaScript间数据交换的方法详解
2013/06/20 PHP
PHP Mysqli 常用代码集合
2016/11/12 PHP
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
JavaScript 计算图片加载数量的代码
2011/01/01 Javascript
借助script进行Http跨域请求:JSONP实现原理及代码
2013/03/19 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
2015/08/06 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
2016/05/18 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
node.js cookie-parser之parser.js
2016/06/06 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
2016/10/27 Javascript
微信小程序 动态绑定事件并实现事件修改样式
2017/04/13 Javascript
使用MUI框架模拟手机端的下拉刷新和上拉加载功能
2017/09/04 Javascript
vue2.0 循环遍历加载不同图片的方法
2018/03/06 Javascript
在vue中,v-for的索引index在html中的使用方法
2018/03/06 Javascript
vue 设置路由的登录权限的方法
2018/07/03 Javascript
webpack中如何加载静态文件的方法步骤
2019/05/18 Javascript
为vue项目自动设置请求状态的配置方法
2019/06/09 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
python文件的md5加密方法
2016/04/06 Python
Python爬虫实战之12306抢票开源
2019/01/24 Python
python多线程并发让两个LED同时亮的方法
2019/02/18 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
COACH德国官方网站:纽约现代奢侈品牌,1941年
2018/06/09 全球购物
俄罗斯珠宝市场的领导者之一:Бронницкий ювелир
2019/10/02 全球购物
final, finally, finalize的区别
2012/03/01 面试题
经济信息管理专业大学生求职信
2013/09/27 职场文书
总经理助理工作职责
2014/02/06 职场文书
优秀部门获奖感言
2014/02/14 职场文书
大学毕业生推荐信
2014/07/09 职场文书
销售员未完成销售业绩的检讨书
2014/10/12 职场文书
2014年学生管理工作总结
2014/12/20 职场文书
倡议书作文
2015/01/19 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python
k-means & DBSCAN 总结
2021/04/27 Python
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript