You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用HTML/JS实现点击图标唤起系统文件资源管理器访问C盘

问题背景

我目前正在开发一个模拟Windows 10任务栏效果的项目,可查看原问题附件的效果图。
当前已实现效果:给Chrome对应的img标签添加了onclick="chrome()"属性,对应JS代码如下:

function chrome()
{
    window.open("https://www.google.com", "", "width=580,height=820");
}

点击Chrome图标可以正常打开新窗口。

待解决问题

想要实现点击文件资源管理器图标时打开file:///C:/路径,使用上述window.open()方法没有生效,需要替代方案实现点击img标签后,在浏览器内打开本地路径或者外部唤起系统文件资源管理器。

解决方案

失效原因:浏览器的安全沙箱策略限制了普通网页直接访问file://协议的本地路径,也不允许未经授权唤起本地系统程序,避免恶意网页窃取用户本地文件或执行恶意操作,属于浏览器的正常安全拦截。
根据项目使用场景可选择对应方案:

场景1:仅个人本地使用的测试项目

  • 方案一:修改浏览器启动参数解除限制(仅适合测试用,不要用该配置的浏览器访问公网网站)
    以Chrome为例:右键Chrome快捷方式选择「属性」,在「目标」栏的原有路径末尾追加如下参数,保存后双击快捷方式启动浏览器即可:
    --allow-file-access-from-files --disable-web-security --user-data-dir="C:\ChromeDevTest"
    
    配置完成后直接使用window.open('file:///C:/')即可在浏览器内打开C盘目录。
  • 方案二:搭建本地文件服务(无需修改浏览器配置,更安全)
    使用本地静态文件服务工具将C盘设为服务根目录,比如用Python执行命令:
    # Python 3
    python -m http.server 8080 --directory C:\
    
    启动后在网页内调用window.open('http://localhost:8080')即可访问C盘文件。

场景2:需要给其他用户使用的项目

  • 纯网页场景无法实现该功能,属于浏览器的硬性安全限制,没有通用绕过方案。
  • 可以将项目改为Electron框架开发的桌面应用,直接调用Electron内置API即可唤起系统资源管理器:
    const { shell } = require('electron')
    // 点击事件触发时执行
    shell.openPath('C:\\')
    
  • 内网场景下还可以使用自定义URL协议方案:提前在用户电脑上注册自定义协议(比如myexplorer://),关联到本地打开资源管理器的脚本,网页内调用window.open('myexplorer://c/')即可唤起,缺点是需要提前为每台使用的设备做协议配置。

内容的提问来源于stack exchange,提问作者20-BCA-053 Jaison John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 08:45:05