如何从JavaScript中打开一个Windows资源管理器窗口?

5
我拥有一个本地的PHP销售点,使用WAMPP作为Web服务器(Win7)。我想找到一种方法来打开Flash驱动器E,就像我们通常通过访问“我的电脑”->“USB闪存盘E:”来做一样,但是使用JavaScript。
我已经找到了这段代码,它完全符合需要...但是它只在IE上运行,我正在使用Google Chrome作为我的POS浏览器,但Chrome会打开一个空白窗口!
以下是代码:
<script>
function CallMe()
{
 window.open("file://PCNAME/E$");
}
</script>
<html>
<input  type="button" onClick="CallMe()" value="Open USB" />
</html>

有没有其他方法可以打开 E 盘的 USB?也许可以使用 PHP 吗?

2
你只是想打开窗口,对吧?你不是想与驱动器内容进行交互吧?正如@madhairsilence所指出的那样,后者是一个巨大的安全问题。呃,他在一个现已删除的评论中指出了这一点。就让我来告诉你吧。后者是一个巨大的安全风险。 - Charles
@Charles 是的,只是打开窗口。 - Alihamra
这不太清楚。你是想在浏览器中打开本地驱动器的内容,还是想在浏览器中打开网络上的其他计算机的内容(使用Javascript)?或者你是想打开服务器的文件夹并显示其内容(使用PHP)?还是你想将用户的硬盘内容上传到服务器?顺便说一句:“通过使用PHP打开本地驱动器C…”对我来说有点可怕。 - lc.
@Charles 好的,但它在IE上可以运行!好的,忘记C驱动器,如果我想打开闪存驱动器呢?比如E:? - Alihamra
不好意思,可能是我的错,我添加了C盘...我会编辑上面的代码,我想检查E盘(USB闪存)是否已经传输文件...就这样! - Alihamra
您可以创建一个href标签,并指定file: \\ [machinetargename] \ c $,但请注意,这仅适用于IE。这将打开Windows资源管理器窗口,而不是浏览器窗口。此外,由于安全原因,这仅适用于IE,而不适用于Edge,Chrome或Firefox。 - Rudy Hinojosa
2个回答

9
您可以允许用户使用以下方式通过浏览器访问其文件系统:
<input type="file" />​

然而,你不能指定默认位置,也不能让浏览器自动打开它。


2
这会打开一个文件选择器,而不是导航工具。它们不是同一件事,并且表现出非常不同的行为。 - Charles
1
@Alihamra,你不能这样做。出于安全原因,用户必须自己进行所有操作。 - Brian Ustas
2
如果无法指定至少默认位置,则不能将其视为有效解决方案。 - Brain
当浏览器供应商的安全实现强制执行时,“不可能”肯定是一种有效的解决方案。 - user1760623

5
window.open("file:///" + yourLocalOrNetworkPath);

8
这在远程网站上不起作用,只能在本地HTML文件中使用。 - Huseyin Yagli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接