rae IDE 兼容性 Bug 反馈报告-内置浏览器调用 window.confirm() / window.alert() 导致整个 IDE 卡死,需强制结束进程

你的运行环境(版本号「点击帮助-关于-复制」):

  • 操作系统:Windows Server 2022
  • Trae IDE 版本:最新版(内置浏览器功能)
  • 测试项目:React + TypeScript + Vite 前端项目
  • 浏览器内核:Trae IDE 内置浏览器(基于 Electron / Chromium)

问题描述(你遇到了什么问题?):

在 Trae IDE 内置浏览器中打开 Web 应用,当页面 JavaScript 代码调用浏览器原生弹窗 API( window.confirm() 、 window.alert() 、 window.prompt() )时,内置浏览器出现无响应,随后导致整个 Trae IDE 界面卡死(所有面板、编辑器、终端均无法操作),只能通过任务管理器强制结束 Trae IDE 进程才能恢复。

复现步骤(如何才能重现这个 Bug/问题?):
在 Trae IDE 中打开一个 React 前端项目

  1. 启动 Vite 开发服务器(如 npm run dev ,端口 5173)
  2. 使用 Trae IDE 内置浏览器访问 http://localhost:5173
  3. 在页面中触发调用 window.confirm(‘测试’) 的操作(如点击删除按钮)
  4. 观察:内置浏览器弹出原生 confirm 对话框后,整个 IDE 立即卡死,无法点击确认或取消按钮,也无法切换到其他 IDE 面板

预期行为:

内置浏览器应正确渲染和处理原生 confirm / alert / prompt 弹窗,或在无法支持时静默处理,不应导致整个 IDE 卡死。

实际行为:

原生弹窗出现后,IDE 主进程被阻塞,所有 UI 交互失效,只能强制结束进程。

影响范围:

  • 所有使用原生 confirm / alert / prompt 的 Web 项目均会触发
  • 开发者在调试时极易误触发,导致未保存的代码丢失
  • 严重影响开发效率和对 IDE 的信任度
    临时解决方案:

开发者需将所有原生 confirm / alert 替换为第三方 UI 组件弹窗(如 Layui layer、Ant Design Modal、SweetAlert 等),避免在 Trae IDE 内置浏览器中使用原生弹窗 API。

改进建议:

  1. 拦截原生弹窗 API :在内置浏览器中拦截 window.confirm / window.alert / window.prompt 调用,替换为 IDE 自有的非阻塞 UI 组件(类似 Chrome DevTools 的处理方式)
  2. 进程隔离 :将内置浏览器运行在独立子进程中,即使浏览器卡死也不影响 IDE 主界面
  3. 超时自动关闭 :为原生弹窗设置超时机制,超过一定时间未响应时自动关闭
  4. 控制台警告 :在开发者控制台中输出警告,提示原生弹窗可能不被内置浏览器完全支持
    附加信息:
  • 同一项目在 Chrome 浏览器、Edge 浏览器中均正常工作,无卡死现象
  • VS Code 的内置浏览器(Simple Browser)对原生弹窗有降级处理,不会卡死
  • 建议参考 VS Code Simple Browser 的实现方式,对原生弹窗进行拦截或降级处理

**报错信息或截图(如有):
**
我在操作以下两个动作时,用内置浏览器访问我的网页,相应操作触发了原生弹窗, Trae IDE就卡死了。

.3543076190297146:60c7b0dce0f911d9205fe0acd50081c9_6a68612e5c87237decbd56b1.6a72f69889dc7f18ca29d9cd.6a72f696f77c6f8f4415a215:Trae CN.T(2026/8/5 16:38:48)

.3543076190297146:ba06236e733f8a1318f7e031164af68b_6a68612e5c87237decbd56b1.6a72fa5189dc7f18ca29da59.6a72fa50f77c6f8f4415a217:Trae CN.T(2026/8/5 16:54:41)

关于内置浏览器调用原生弹窗导致卡死的问题,知识库中暂时没有相关记录。当前帖子里的信息还不足以形成可靠结论,请你在本帖补充 TRAE IDE 版本、操作系统、复现步骤,以及可用的截图或日志。

您好,目前TraeCode的内置浏览器实际是一个webview组件,暂时不兼容外置浏览器一些原生方法,建议这类需求可以先使用外置浏览器调试。