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是否可以跨文件同时控制多个iframe页面的应用技巧
Dec 16 Javascript
javascript中apply和call方法的作用及区别说明
Feb 14 Javascript
浅析js预加载/延迟加载
Sep 25 Javascript
jQuery中prepend()方法使用详解
Aug 11 Javascript
AngularJs动态加载模块和依赖注入详解
Jan 11 Javascript
angular.js指令中的controller、compile与link函数的不同之处
May 10 Javascript
Angular2使用jQuery的方法教程
May 28 jQuery
jsonp跨域请求详解
Jul 13 Javascript
基于Node.js模板引擎教程-jade速学与实战1
Sep 17 Javascript
基于jQuery的时间戳与日期间的转化
Jun 21 jQuery
js回溯法计算最佳旅行线路代码实例
Sep 11 Javascript
vue实现input输入模糊查询的三种方式
Aug 14 Vue.js
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
sony ICF-2010 拆解与改装
2021/03/02 无线电
PHP4实际应用经验篇(7)
2006/10/09 PHP
php 信息采集程序代码
2009/03/17 PHP
让PHP支持断点续传的源码
2010/05/16 PHP
PHP使用正则表达式获取微博中的话题和对象名
2015/07/18 PHP
php 问卷调查结果统计
2015/10/08 PHP
PHP实现发送邮件的方法(基于简单邮件发送类)
2015/12/17 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
js图片实时加载提供网页打开速度
2014/09/11 Javascript
javascript几个易错点记录
2014/11/26 Javascript
IE8中动态创建script标签onload无效的解决方法
2014/12/22 Javascript
JavaScript阻止浏览器返回按钮的方法
2015/03/18 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
2015/09/19 Javascript
JavaScript中创建对象的模式汇总
2016/04/19 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
vue实现引入本地json的方法分析
2018/07/12 Javascript
浅谈Javascript中的对象和继承
2019/04/19 Javascript
vue中获取滚动table的可视页面宽度调整表头与列对齐(每列宽度不都相同)
2019/08/17 Javascript
jquery实现进度条状态展示
2020/03/26 jQuery
详解设计模式中的工厂方法模式在Python程序中的运用
2016/03/02 Python
TensorFlow利用saver保存和提取参数的实例
2018/07/26 Python
Python编程图形库之Pillow使用方法讲解
2018/12/28 Python
Python 复平面绘图实例
2019/11/21 Python
Python3 实现减少可调用对象的参数个数
2019/12/20 Python
什么是python的函数体
2020/06/19 Python
python操作toml文件的示例代码
2020/11/27 Python
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
KIKO比利时官网:意大利彩妆品牌
2017/07/23 全球购物
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
分公司总经理岗位职责
2014/07/30 职场文书
信用卡工资证明格式
2014/09/13 职场文书
小学四年级班主任工作经验交流材料
2015/11/02 职场文书
三好学生评选事迹材料(2016精选版)
2016/02/25 职场文书
施工安全责任协议书
2016/03/23 职场文书
码云(gitee)通过git自动同步到阿里云服务器
2022/12/24 Servers