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 覆盖和重载 函数
Sep 25 Javascript
表格单元格交错着色实现思路及代码
Apr 01 Javascript
js 验证身份证信息有效性
Mar 28 Javascript
jquery中one()方法的用法实例
Jan 16 Javascript
jQuery EasyUI datagrid实现本地分页的方法
Feb 13 Javascript
JavaScript实现带标题的图片轮播特效
May 20 Javascript
Vue.js一个文件对应一个组件实践
Oct 27 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
Nov 24 Javascript
微信小程序 require机制详解及实例代码
Dec 14 Javascript
React父子组件间的传值的方法
Nov 13 Javascript
详解小程序开发经验:多页面数据同步
May 18 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
Nov 23 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
PHP微信API接口类
2016/08/22 PHP
php微信开发之图片回复功能
2018/06/14 PHP
Aster vs Newbee BO3 第二场2.18
2021/03/10 DOTA
JS解密入门 最终变量劫持
2008/06/25 Javascript
js控制框架刷新
2008/08/01 Javascript
JavaScript 学习初步 入门教程
2010/03/25 Javascript
jquery focus(fn),blur(fn)方法实例代码
2011/12/16 Javascript
Jquery的hover方法让鼠标经过li时背景变色
2013/09/06 Javascript
JS中产生20位随机数以0-9为例也可以是a-z A-Z
2014/08/01 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
2014/09/29 Javascript
jQuery实现跨域iframe接口方法调用
2015/03/14 Javascript
js实现仿MSN带关闭功能的右下角弹窗代码
2015/09/04 Javascript
Extjs表单输入框异步校验的插件实现方法
2017/03/20 Javascript
小发现之浅谈location.search与location.hash的问题
2017/06/23 Javascript
vue 指令之气泡提示效果的实现代码
2018/10/18 Javascript
vue项目首屏加载时间优化实战
2019/04/23 Javascript
vue.js实现简单的计算器功能
2020/02/22 Javascript
[49:20]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
Windows安装Python、pip、easy_install的方法
2017/03/05 Python
Python调用系统底层API播放wav文件的方法
2017/08/11 Python
pygame游戏之旅 调用按钮实现游戏开始功能
2018/11/21 Python
python,Django实现的淘宝客登录功能示例
2019/06/12 Python
Python 保持登录状态进行接口测试的方法示例
2019/08/06 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
2020/01/20 Python
Python函数基本使用原理详解
2020/03/19 Python
Python Django中的STATIC_URL 设置和使用方式
2020/03/27 Python
jenkins+python自动化测试持续集成教程
2020/05/12 Python
哪种Python框架适合你?简单介绍几种主流Python框架
2020/08/04 Python
Python描述数据结构学习之哈夫曼树篇
2020/09/07 Python
详解python内置模块urllib
2020/09/09 Python
巴西服装和鞋子购物网站:Marisa
2018/10/25 全球购物
日本最大的购物网站乐天市场国际版:Rakuten Global Market(支持中文)
2020/02/03 全球购物
书法培训心得体会
2014/01/05 职场文书
禁烟标语大全
2014/06/11 职场文书
2014各大专业毕业生自我评价
2014/09/17 职场文书
建国大业电影观后感
2015/06/01 职场文书