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

 更新时间:2015年03月02日 10:33:23   投稿:junjie  
这篇文章主要介绍了Javascript中使用A标签获取当前目录的绝对路径方法,本文讲解的方法比较特别,需要的朋友可以参考下

一谈到路径相关的问题,大家都会往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;

有人可能会问:为何不用正则表达式?我的答案是:要考虑有无文件名的情况、有无锚点的情况、有无查询参数的情况,这条正则表达式可能会挺复杂的。

相关文章

  • 微信小程序扫描普通二维码跳转到小程序指定页面操作方法

    微信小程序扫描普通二维码跳转到小程序指定页面操作方法

    这篇文章主要给大家介绍了关于微信小程序扫描普通二维码跳转到小程序指定页面操作的相关资料,为了分享方便,或者制作宣传海报之类的,经常需要用到微信小程序指定页面的二维码,让用户扫码直达页面,需要的朋友可以参考下
    2023-08-08
  • 基于原生JS实现图片裁剪

    基于原生JS实现图片裁剪

    要进行图片编辑,最重要要能够对图片进行裁剪。主要的实现分成两部分,一部分是前端利用js进行裁剪区域选择,第二部分是利用PHP进行后台处理。现在就跟大家分享一下。
    2016-08-08
  • JS实现获取汉字首字母拼音、全拼音及混拼音的方法

    JS实现获取汉字首字母拼音、全拼音及混拼音的方法

    这篇文章主要介绍了JS实现获取汉字首字母拼音、全拼音及混拼音的方法,涉及针对ChinesePY.js插件的使用及事件响应相关操作技巧,需要的朋友可以参考下
    2017-11-11
  • 使用透明效果来自定义文件上传按钮控件样式

    使用透明效果来自定义文件上传按钮控件样式

    处于安全上的考虑,input[type="file"] 的文件选择按钮样式并不能随意修改(不过可以修改input 的透明度),可能会跟设计师的设计格格不入,这时可以使用透明效果来自定义上传按钮
    2012-12-12
  • 微信小程序利用Canvas绘制图片和竖排文字详解

    微信小程序利用Canvas绘制图片和竖排文字详解

    这篇文章主要介绍了微信小程序利用Canvas绘制图片和竖排文字详解,合成图片应该按照 Canvas 的文档来做都没什么问题,主要是有个竖排文字的需求,这里和大家分享一下,需要的朋友可以参考下
    2019-06-06
  • JavaScript中forEach遍历数组举例详解

    JavaScript中forEach遍历数组举例详解

    许多小伙伴对forEach语句应该再熟悉不过了,无论是前端遍历渲染还是js中的逻辑处理,这篇文章主要介绍了JavaScript中forEach方法的使用方式、优缺点以及实际应用场景,帮助开发者更好地掌握这一常见的数组遍历技术,需要的朋友可以参考下
    2025-03-03
  • flexslider.js实现移动端轮播

    flexslider.js实现移动端轮播

    本文主要分享了flexslider.js实现移动端轮播的示例代码,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • javascript 中的console.log和弹出窗口alert

    javascript 中的console.log和弹出窗口alert

    这篇文章主要介绍了javascript 中的console.log和弹出窗口alert 的相关资料,非常不错,具有参考借鉴价值,感兴趣的朋友参考下吧
    2016-08-08
  • JS如何判断json是否为空

    JS如何判断json是否为空

    本文重点给大家介绍js判断json对象是否为空的知识,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-07-07
  • Javascript异步编程async实现过程详解

    Javascript异步编程async实现过程详解

    这篇文章主要介绍了Javascript异步编程async实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04

最新评论