可以直接通过 JavaScript 动态设置页面语言,常用 document.documentElement.lang = 'zh-CN' 或 setAttribute('lang', 'en-US'),需确保 DOM 加载完成后再执行,并遵循 BCP 47 标准。
可以直接通过 javascript 修改 <html> 元素的 lang 属性,从而动态设置整个页面的语言。
获取并修改 html 元素的 lang 属性
最常用的方式是使用 document.documentElement 获取根元素(即 <html>),然后用 setAttribute() 或直接赋值给 lang 属性:
document.documentElement.setAttribute('lang', 'zh-CN');document.documentElement.lang = 'en-US';
两种写法效果相同,后者更简洁;属性值应遵循 BCP 47 标准(如 zh、zh-Hans、fr-CA)。
确保修改时机正确
如果脚本在 DOM 加载完成前执行,可能因元素未就绪而失败。推荐放在以下任一位置:
- 放在
</body>之前 - 包裹在
DOMContentLoaded事件中:document.addEventListener('DOMContentLoaded', () => { document.documentElement.lang = 'ja'; }); - 或使用
defer的外部脚本
配合语言切换逻辑使用
实际项目中常结合用户选择更新语言。例如点击按钮切换为西班牙语:
立即学习“Java免费学习笔记(深入)”;
- 给按钮添加点击事件
- 更新
lang属性的同时,可同步修改页面内文本、加载对应翻译资源 - 建议同时设置
document.querySelector('meta[name="viewport"]')等相关属性(非必需,但有助于辅助技术识别)
注意:仅改 lang 不会自动翻译内容,它主要影响屏幕阅读器、搜索引擎和浏览器行为(如字体回退、拼写检查)。
验证是否生效
修改后可通过开发者工具 Elements 面板查看 <html lang="..."> 是否更新,或运行:
console.log(document.documentElement.lang);console.log(document.documentElement.getAttribute('lang'));
两者返回一致结果,推荐用 .lang 读取更直观。


















