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 相关文章推荐
jquery-syntax动态语法着色示例代码
May 14 Javascript
JS运动基础框架实例分析
Mar 03 Javascript
AngularJS的表单使用详解
Jun 17 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
Dec 03 Javascript
jQuery中的siblings用法实例分析
Dec 24 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
Feb 19 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
Jan 06 Javascript
jQuery使用方法
Feb 04 Javascript
webpack踩坑之路图片的路径与打包
Sep 05 Javascript
强大的JavaScript响应式图表Chartist.js的使用
Sep 13 Javascript
关于Vue单页面骨架屏实践记录
Dec 13 Javascript
JS中appendChild追加子节点无效的解决方法
Oct 14 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和XSL stylesheets转换XML文档
2006/10/09 PHP
php 计划任务 检测用户连接状态
2012/03/29 PHP
php实现留言板功能(会话控制)
2017/05/23 PHP
jquery 插件学习(二)
2012/08/06 Javascript
javascript 星级评分效果(手写)
2012/12/24 Javascript
解决jquery插件冲突的问题
2014/01/23 Javascript
js计算任意值之间随机数的方法
2015/01/16 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
详解JS构造函数中this和return
2017/09/16 Javascript
JavaScript适配器模式详解
2017/10/19 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
JS实现简单打字测试
2020/06/24 Javascript
python让图片按照exif信息里的创建时间进行排序的方法
2015/03/16 Python
举例讲解Python中装饰器的用法
2015/04/27 Python
在Python的Django框架中调用方法和处理无效变量
2015/07/15 Python
selenium python浏览器多窗口处理代码示例
2018/01/15 Python
详解PyTorch批训练及优化器比较
2018/04/28 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
2018/05/08 Python
Python实现的redis分布式锁功能示例
2018/05/29 Python
python发送告警邮件脚本
2018/09/17 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
2019/01/17 Python
pandas 中对特征进行硬编码和onehot编码的实现
2019/12/20 Python
python和node.js生成当前时间戳的示例
2020/09/29 Python
浅谈利用缓存来优化HTML5 Canvas程序的性能
2015/05/12 HTML / CSS
IFCHIC台湾:欧美国际设计师品牌
2019/05/18 全球购物
英国老牌潮鞋店:Offspring
2019/08/19 全球购物
哥伦比亚加拿大官网:Columbia Sportswear Canada
2020/09/07 全球购物
一道Delphi上机题
2012/06/04 面试题
人事行政主管岗位职责
2013/12/22 职场文书
医院营销工作计划
2015/01/16 职场文书
投资申请报告
2015/05/19 职场文书
比赛口号霸气押韵
2015/12/24 职场文书
如何开发一个渐进式Web应用程序PWA
2021/05/10 Javascript
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis
怎么禁用Windows 11快照布局? win11不使用快照布局的技巧
2021/11/21 数码科技