如何格式化表示本地系统上的文件路径的字符串

时间:2016-07-29 07:23:43

标签: javascript html

我有一些javascript代码,可以对服务器进行REST调用并检索对象。这些对象有一个名为'path'的属性,它引用本地文件系统中的html文件。所以我有一个这样的ancore标签

<a href="' + result.path +'" class="test">view</a>

在运行时将替换为

之类的东西
<a href="C:\Users\Tim\Downloads\0000048.html" class="test">view</a>

假设我们在Windows系统上并且路径的值是,C:\ Users \ Merylin \ Downloads \ 0000048.html。

当我点击链接时,它会导航到C:\ Users \ Merylin \ Downloads \ 0000048.html但是我从浏览器收到错误响应,无法识别地址。但是当我重新加载页面时它显示正常,但我注意到地址已更改为file:/// C:\ Users \ Merylin \ Downloads \ 0000048.html,请注意附加文件:/// 。我不希望用户在显示之前必须重新加载页面。我只是想知道是否有一些javascript函数可以用来格式化路径,以便浏览器可以接受它。注意,我无法控制如何创建该路径,我只是使用REST读取它,它可能来自Windows或Linux。

2 个答案:

答案 0 :(得分:0)

您可以在文件路径之前附加&#34; file:///&#34; 。用户只需单击即可获得该页面。

我希望这会对你有所帮助。

答案 1 :(得分:0)

正如Yuva所说,要指定本地路径,您必须先添加&#34; file:///&#34;到文件路径。

但它仍然不适合你,因为出于安全原因,大多数浏览器都不允许链接到本地​​资源。

这是您在第一次尝试时看到的错误。

当您重新加载页面时,它可以正常工作,因为它已经放置在地址栏中,因此会重新加载&#34;与手动编写路径并按下&#34;输入&#34;非常相似。总是应该有意识地执行的操作,因此大多数浏览器(支持本地文件系统探索的浏览器)都不会阻止它。

总之,如果您被迫链接本地文件,您将被迫执行该手动重新加载,或者最多使用某些浏览器插件(如Locallink for Firefox)来直接打开它们(但是,至少locallink,需要使用上下文菜单选项,它已经确保你没有做错。我不知道是否有其他插件没有。)

但是,无论如何,如果这些文件有可能从服务器上获得,那么更好的解决方案就是从您的应用程序提供服务。例如,如果您的服务器实现在Node + Express上,则在保存文件的路径上使用静态路由器。