You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

根据浏览器语言显示不同文本的代码无输出,求排查原因

问题原因及修复方案

你的代码存在几个关键问题,导致无法正常输出内容,逐一说明:

1. case 后的值未加引号,引发未定义变量错误

es 和 en 没有用引号包裹,JavaScript 会将它们视为未定义的变量,执行时会抛出 ReferenceError,直接中断代码运行。

2. 未匹配 navigator.language 的实际返回格式

navigator.language 通常返回带区域代码的字符串,比如 "es-ES"(西班牙语-西班牙)、"en-US"(英语-美国),而非单纯的 "es" 或 "en",因此你的 case 条件无法匹配到实际值。

3. 缺少默认分支与 DOM 元素存在性检查

  • 若浏览器语言不在你指定的 case 范围内,代码不会执行任何输出逻辑;
  • 未提前检查 document.getElementById("demo") 是否存在,如果页面中没有 id 为 demo 的元素,会抛出 Cannot set properties of null 错误。

修复后的代码

// 提取浏览器语言的主代码(去除区域后缀)
const language = navigator.language.split('-')[0];
// 先确认目标DOM元素存在
const demoElement = document.getElementById("demo");
if (!demoElement) {
    console.error("页面中未找到id为demo的元素");
    return;
}

switch (language) {
    case "es":
        demoElement.innerText = "Hola";
        break;
    case "en":
        demoElement.innerText = "Hello";          
        break;
    default:
        demoElement.innerText = "Hello"; // 可自定义默认显示文本
}

内容的提问来源于stack exchange,提问作者al3j4ndr0

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 03:18:13