你的运行环境(版本号「点击帮助-关于-复制」):
- 操作系统: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 前端项目
- 启动 Vite 开发服务器(如 npm run dev ,端口 5173)
- 使用 Trae IDE 内置浏览器访问 http://localhost:5173
- 在页面中触发调用 window.confirm(‘测试’) 的操作(如点击删除按钮)
- 观察:内置浏览器弹出原生 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。
改进建议:
- 拦截原生弹窗 API :在内置浏览器中拦截 window.confirm / window.alert / window.prompt 调用,替换为 IDE 自有的非阻塞 UI 组件(类似 Chrome DevTools 的处理方式)
- 进程隔离 :将内置浏览器运行在独立子进程中,即使浏览器卡死也不影响 IDE 主界面
- 超时自动关闭 :为原生弹窗设置超时机制,超过一定时间未响应时自动关闭
- 控制台警告 :在开发者控制台中输出警告,提示原生弹窗可能不被内置浏览器完全支持
附加信息:
- 同一项目在 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)