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

Google Chrome 107中Window.showDirectoryPicker()无法正常工作

解决Window.showDirectoryPicker()不弹出目录选择窗口的问题

针对你遇到的Chrome 107+环境下showDirectoryPicker()无响应的问题,以下是常见原因及解决办法:

1. 必须在安全上下文运行

showDirectoryPicker()属于文件系统访问API,仅支持HTTPS协议、localhost或127.0.0.1这类安全上下文。如果你的页面是通过普通HTTP(比如http://192.168.x.x)打开的,API会直接失效,控制台会抛出安全相关的错误。

解决:

  • 改用localhost或127.0.0.1启动本地服务;
  • 部署到HTTPS环境下测试。

2. 检查浏览器权限设置

Chrome可能默认限制了网站访问文件系统的权限:

  1. 打开Chrome设置 → 隐私和安全 → 网站设置 → 文件和文件夹;
  2. 确保“允许网站请求访问文件和文件夹”处于开启状态;
  3. 检查当前网站是否被列入“不允许”列表,如有则移除。

3. 确认用户交互上下文未丢失

虽然你的代码绑定了按钮click事件,但如果在异步操作中嵌套多层回调,可能会脱离用户触发的上下文。确保await window.showDirectoryPicker()直接在click事件的回调函数中执行,不要被其他非用户触发的异步逻辑包裹。

你可以给代码添加错误捕获,方便排查问题:

const butDir = document.getElementById('butDirectory');
butDir.addEventListener('click', async () => {
  try {
    const dirHandle = await window.showDirectoryPicker();
    console.log('目录已选择:', dirHandle.name);
    for await (const entry of dirHandle.values()) {
      console.log(entry.kind, entry.name);
    }
  } catch (err) {
    console.error('操作取消或出错:', err);
  }
});

4. 确认浏览器版本准确

输入chrome://version/查看Chrome的精确版本,确保确实是107及以上版本,避免版本显示异常。

调试建议

打开Chrome开发者工具(F12)的Console面板,点击按钮后查看是否有报错信息——这些错误提示是定位问题最直接的依据。

内容的提问来源于stack exchange,提问作者Olivier

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 03:05:27