zoukankan      html  css  js  c++  java
  • 使用Javascript获取当前目录的绝对路径

    转自http://heeroluo.net/Article/Detail/101

    一谈到路径相关的问题,大家都会往window.location上想,确实这个对象提供了相当多的路径信息,其中常用的就包括:

    • location.href:当前页面的完整URL
    • location.pathname:当前URL中的路径名
    • location.hash:当前URL中的锚点
    • 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;

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

  • 相关阅读:
    Sum Root to Leaf Numbers
    Sum Root to Leaf Numbers
    Sort Colors
    Partition List
    Binary Tree Inorder Traversal
    Binary Tree Postorder Traversal
    Remove Duplicates from Sorted List II
    Remove Duplicates from Sorted List
    Search a 2D Matrix
    leetcode221
  • 原文地址:https://www.cnblogs.com/icelin/p/3633588.html
Copyright © 2011-2022 走看看