如何通过单击任何链接打开本地文件夹视图?
我尝试了很多选择,比如
<a href="file:///D:/Tools/">Open folder</a>
或者
<a onclick="file:///D:/Tools/">Open folder</a>
或者
<a onclick="window.open(file:///D:/Tools/)">Open folder</a>
如何通过单击任何链接打开本地文件夹视图?
我尝试了很多选择,比如
<a href="file:///D:/Tools/">Open folder</a>
或者
<a onclick="file:///D:/Tools/">Open folder</a>
或者
<a onclick="window.open(file:///D:/Tools/)">Open folder</a>
以下适用于所有浏览器,但一如既往地有警告。
背景:
“URL 快捷方式”取决于操作系统。由于环境之间缺乏标准,以下解决方案适用于 MS Windows。
如果您需要以下解决方案的 linux 支持,请参阅此文章。
* 我与这篇文章没有任何关系,YMMV。
URL 快捷方式有两种形式:
带有 .URL 扩展名的文件是基于文本的。可以动态生成。
[互联网快捷方式]
URL=file:///D:/
带有 .LNK 扩展名的文件是二进制文件。它们可以动态生成,但需要 iShelLinkInterface 实现者。默认操作系统限制使这变得复杂,这理所当然地阻止了 IIS 进程访问 Shell。
.URL 是推荐的解决方案,因为动态生成跨 Web 语言/框架是可行的,并允许 KISS 实现。
概述/回顾:
解决方案:
提供资源的可下载链接(.URL 或 .LNK)。浏览器行为将在帖子末尾解释。
选项 1:生成 .lnk 文件并将其保存到服务器。由于 .LNK 文件的二进制性质,这不是推荐的解决方案,但预先生成的文件应该是可行的。
选项 2:生成 .url 文件并将其保存到服务器或动态生成它。在我的情况下,我正在动态创建 .URL 文件。
解决方案详细信息 (.URL):
将 .url 添加到 Web 服务器中可用的 MIME 类型。
对于 IIS 打开站点,选择 MIME 类型,并添加以下内容:
文件名扩展名= .url
MIME 类型:application/internet-shortcut
每 @cremax ... 对于 Webkit 浏览器(如 Apache 服务器上的 Chrome),将此代码添加到 .htaccess 或 http.config:
SetEnvIf Request_URI ".url$" requests_url=url 头部添加 Content-Disposition "attachment" env=requested_url
.url 文件是一个文本文件,格式如下(同样,这可以动态生成)。
文件内容:
[互联网快捷方式]
URL=file:///D:
提供指向生成 .url 文件的脚本或文件本身的链接。
如果您只是将 .url 文件上传到您的服务器,请将以下内容添加到您的 HTML 中:
<a href="URIShortcut.url">Round-About Linking</a>
浏览器相关行为
Chrome:下载/保存 file.url 然后打开
在 Chrome 中,可以通过选择“始终打开此类型的文件”选项来增强此行为。
FireFox:下载/保存 file.url 然后打开
Internet Explorer : 点击“打开”并直接进入目录(无需保存快捷方式)
Internet Explorer 具有首选行为,但 Chrome 和 Firefox 至少可以使用。
由于安全限制,所有现代浏览器都禁止链接到本地资源。
对于火狐:
出于安全目的,Mozilla 应用程序会阻止从远程文件到本地文件(和目录)的链接。这包括链接到硬盘驱动器、映射网络驱动器上的文件,以及通过统一命名约定 (UNC) 路径访问的文件。这可以防止许多不愉快的可能性,包括:
- 允许站点通过检查默认安装路径来检测您的操作系统
- 允许站点利用系统漏洞(例如,Windows 95/98 中的 C:\con\con)
- 允许站点检测浏览器首选项或读取敏感数据
对于IE:
Internet Explorer 6 Service Pack 1 (SP1) 不再允许从 Internet 区域浏览本地计算机。例如,如果 Internet 站点包含指向本地文件的链接,则当用户单击该链接时,Internet Explorer 6 SP1 会显示一个空白页面。以前版本的 Windows Internet Explorer 遵循本地文件的链接。
对于Opera(在安全公告的上下文中,我确定有一个更规范的链接):
作为安全预防措施,Opera 不允许网页链接到用户本地磁盘上的文件
仅适用于 IE6-8 - JavaScript 中有一个 ActiveX 解决此本地文件问题:
function OpenImage(filePath)
{
var myshell = new ActiveXObject("WScript.shell");
myshell.run(filePath, 1, true);
}
您可以使用
<a href="\\computername\folder">Open folder</a>
在 Internet Explorer 中
添加点击打开本地目录o本地文件到谷歌浏览器:
JFish222 的解决方案有效(URL 文件解决方案)
对于 Apache 服务器上的 Chrome 等 Webkid 浏览器,只需将以下代码添加到 .htaccess o http.config 中:
SetEnvIf Request_URI ".url$" requests_url=url 头部添加 Content-Disposition "attachment" env=requested_url
并通过您的 url 文件的第一个下载点击 chromes 下载栏中的文件并选择“始终打开此文件”。