我有一些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。
答案 0 :(得分:0)
您可以在文件路径之前附加&#34; file:///&#34; 。用户只需单击即可获得该页面。
我希望这会对你有所帮助。
答案 1 :(得分:0)
正如Yuva所说,要指定本地路径,您必须先添加&#34; file:///&#34;到文件路径。
但它仍然不适合你,因为出于安全原因,大多数浏览器都不允许链接到本地资源。
这是您在第一次尝试时看到的错误。
当您重新加载页面时,它可以正常工作,因为它已经放置在地址栏中,因此会重新加载&#34;与手动编写路径并按下&#34;输入&#34;非常相似。总是应该有意识地执行的操作,因此大多数浏览器(支持本地文件系统探索的浏览器)都不会阻止它。
总之,如果您被迫链接本地文件,您将被迫执行该手动重新加载,或者最多使用某些浏览器插件(如Locallink for Firefox)来直接打开它们(但是,至少locallink,需要使用上下文菜单选项,它已经确保你没有做错。我不知道是否有其他插件没有。)
但是,无论如何,如果这些文件有可能从服务器上获得,那么更好的解决方案就是从您的应用程序提供服务。例如,如果您的服务器实现在Node + Express上,则在保存文件的路径上使用静态路由器。