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 相关文章推荐
js利用Array.splice实现Array的insert/remove
Jan 13 Javascript
javaScript 计算两个日期的天数相差(示例代码)
Dec 27 Javascript
node.js中的http.createClient方法使用说明
Dec 15 Javascript
jquery验证手机号是否正确实例讲解
Nov 17 Javascript
js导出excel文件的简洁方法(推荐)
Nov 02 Javascript
原生js实现简单的Ripple按钮实例代码
Mar 24 Javascript
react.js使用webpack搭配环境的入门教程
Aug 14 Javascript
微信小程序实现图片预览功能
Jan 31 Javascript
JS中的算法与数据结构之集合(Set)实例详解
Aug 20 Javascript
基于better-scroll 实现歌词联动功能的代码
May 07 Javascript
理解JavaScript中的Proxy 与 Reflection API
Sep 21 Javascript
工作中常用js功能汇总
Nov 07 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
cakephp打印sql语句的方法
2015/02/13 PHP
flash javascript之间的通讯方法小结
2008/12/20 Javascript
jQuery .tmpl(), .template()学习资料小结
2011/07/18 Javascript
jQuery中(function(){})()执行顺序的理解
2013/03/05 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
js模拟hashtable的简单实例
2014/03/06 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
JavaScript Promise 用法
2016/06/14 Javascript
JavaScript实现通过select标签跳转网页的方法
2016/09/29 Javascript
JS查找英文文章中出现频率最高的单词
2017/03/20 Javascript
js利用for in循环获取 一个对象的所有属性以及值的实例
2017/03/30 Javascript
Vue-Cli中自定义过滤器的实现代码
2017/08/12 Javascript
JS动画实现回调地狱promise的实例代码详解
2018/11/08 Javascript
原生js实现文件上传、下载、封装等实例方法
2020/01/05 Javascript
Vuex的热更替如何实现
2020/06/05 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
[47:26]完美世界DOTA2联赛 LBZS vs Forest 第二场 11.07
2020/11/09 DOTA
10个易被忽视但应掌握的Python基本用法
2015/04/01 Python
Python将文本去空格并保存到txt文件中的实例
2018/07/24 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
2019/07/03 Python
Python 用matplotlib画以时间日期为x轴的图像
2019/08/06 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
LightInTheBox西班牙站点:全球商品在线采购
2016/09/22 全球购物
英国电子产品购物网站:TobyDeals
2018/07/30 全球购物
领先的英国注册在线药房 :Simply Meds Online
2019/03/28 全球购物
美国战术品牌:5.11 Tactical
2019/05/01 全球购物
Nike瑞士官网:Nike CH
2021/01/18 全球购物
料理师求职信
2014/01/30 职场文书
小学中秋节活动方案
2014/02/06 职场文书
感恩教育活动总结
2014/05/05 职场文书
揭牌仪式策划方案
2014/05/28 职场文书
新手上路标语
2014/06/20 职场文书
怎样写家长意见
2015/06/04 职场文书
资产移交协议书
2016/03/24 职场文书
SpringBoot前端后端分离之Nginx服务器下载安装过程
2022/08/14 Servers