如何优雅地提示用户启用 JavaScript(避免闪烁与 FOUC)

当网站强制依赖 javascript 时,需向禁用 js 的用户展示友好提示;但传统内联脚本切换 dom 显示状态易导致“闪现”(fouc)。本文介绍通过动态注入 css 实现零闪烁的渐进增强方案。

在 Web 开发中,若项目明确要求 JavaScript 必须启用(例如基于 Vue/React 的单页应用,或重度依赖 DOM 操作的交互逻辑),为无 JS 环境提供清晰、即时的降级提示至关重要。然而,原始方案中将

默认设为 display: block,再靠后续 标签需等待解析、执行后才修改样式,中间存在不可忽视的时间差。

推荐解决方案:CSS 优先 + 动态注入
不依赖 JS 修改已有元素的 style 属性,而是在 JS 执行初期、DOM 构建前,就通过 JavaScript 动态插入一条高优先级 CSS 规则,让 #warningJS 从渲染第一帧起即被隐藏。由于该 CSS 在 中注入且无延迟,浏览器在解析后续 HTML 时已知晓该规则,从而彻底规避闪烁。

以下是生产就绪的实现代码(兼容所有现代浏览器,含语义化优化):


  
  



  
  
    

⚠️ JavaScript is disabled

This application requires JavaScript to run. Please enable it in your browser settings.

? 关键要点说明: