file:// protocol的相对绝对路径

时间:2017-08-02 15:45:17

标签: javascript html path

我在具有类似html的网站上进行抓取

<a href="/pages/1></a>

我也有window.location对象,我有

origin:"http://www.example.org"

所以我可以构建像origin + href = http://www.example.org/pages/1

这样的绝对路径

我在我的文件系统上制作了一个用于测试的页面模型。

-www.example.org
  |-2017
    |-pages
      |-1.html
      |-2.html
  |-2016
    |-pages
      |-1.html
      |-2.html

在那些html文件中,链接看起来像这样:

<!-- www.example.org/2016/pages/1.html --> <a href="../../2017/pages/1.html">2017</a>

在测试中,相同的代码不起作用,因为window.location对象的来源是file://

hash:""
host:""
hostname:""
href:"file:///home/me/projects/fp/src/test/fixtures/www.example.org/2016/pages/1.html"
origin:"file://"
pathname:"/home/me/projects/fp/src/test/fixtures/www.example.org/2016/pages/1.html"
port:""
protocol:"file:"

生成origin + href = file://../../2017/pages/1.html。如果协议为file:///home/me/projects/fp/src/test/fixtures/www.example.org/2017/pages/1.html,我可以通过一些字符串操作location.pathname file:。但这是处理这个问题的正确方法吗?

1 个答案:

答案 0 :(得分:1)

file://只能用于绝对路径。

只有有效的相对路径才是当前的工作目录。