直接在搜索框元素添加autofocus属性即可实现自动聚焦,但仅页面首次加载生效,需确保元素可聚焦且未禁用,单页应用及移动端需JavaScript兜底处理。

直接在搜索框元素上添加 autofocus 属性即可,但要注意它只在页面首次加载时生效,且有兼容性和体验限制。
基础写法:加属性就行
autofocus 是布尔属性,不需要赋值。只要把它加到可聚焦的搜索框上,浏览器解析 HTML 时就会自动聚焦:
注意:确保该元素不是 disabled 或 hidden 状态,否则 autofocus 无效。
必须遵守的关键规则
一个页面中只能有一个 autofocus 元素,否则行为不可靠:
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
- 多个 autofocus 标签时,浏览器通常只对第一个生效,其余被忽略
- 不要给
、或未设tabindex的非表单元素加 autofocus —— 它们不支持- SPA(如 React/Vue)中动态渲染的搜索框,autofocus 不起作用,因为它是 HTML 解析阶段触发的
移动端和老浏览器要兜底
iOS Safari 几乎总是忽略 autofocus,Android Chrome 也日趋严格。稳妥做法是用 JavaScript 补充:
- 监听 DOM 加载完成:
DOMContentLoaded - 聚焦前检查当前焦点位置,避免覆盖用户已有操作:
if (input && document.activeElement !== input) - 示例代码:
别忽视用户体验细节
自动聚焦不是“加上就完事”,还要考虑实际场景:
- 登录页或独立搜索页适合用 autofocus;首页顶部放搜索框却自动聚焦,可能打断用户浏览
- 屏幕阅读器会按 autofocus 跳转,若页面顶部有重要提示,建议延后聚焦或提供跳过链接
- 移动端过早弹出软键盘可能遮挡内容,尤其在模态框中,可改用用户点击按钮后再聚焦
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










