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

jQuery代码在Internet Explorer中无法运行问题求助

解决IE中浏览器检测脚本失效的问题

看起来你的脚本在IE里跑不起来,大概率是未定义的isEdge变量导致了ReferenceError,直接让整个脚本崩掉了。另外,原有的IE检测逻辑也可以再优化下,确保兼容不同版本的IE。

我帮你调整了代码,修复了这些问题,同时保留了原有的检测逻辑:

$(document).ready(function () {
    // 先定义isEdge变量,避免未定义报错
    var isEdge = !window.chrome && !!window.StyleMedia;
    
    var is_chrome = !!window.chrome && !is_opera;
    // 优化IE检测:覆盖IE6-11,同时排除Edge
    var is_explorer = typeof document !== 'undefined' && !!document.documentMode && !isEdge;
    var is_firefox = typeof window.InstallTrigger !== 'undefined';
    var is_safari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
    var is_opera = !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;

    // 这里写你的隐藏特定HTML代码的逻辑,比如:
    if (is_explorer) {
        // 隐藏IE中不需要的元素
        $('.ie-hidden').hide();
    } else if (is_chrome) {
        // Chrome下的逻辑
        $('.chrome-hidden').hide();
    }
    // ...其他浏览器的逻辑
});

关键修复点说明:

  • 添加isEdge的定义:原代码里直接用了!isEdge但没声明这个变量,IE会抛出未定义错误,导致脚本终止执行。这里用window.StyleMedia来检测旧版Edge,如果是Chromium内核的新Edge,会被is_chrome捕获。
  • 优化IE检测逻辑:确保document.documentMode存在的同时,排除Edge浏览器,避免误判。
  • Opera检测补充:原代码的Opera检测不完整,补充了navigator.userAgent.indexOf(' OPR/')来覆盖新版Opera的情况。

额外注意事项:

  • 如果你需要支持IE8及以下版本,请使用jQuery 1.x版本(jQuery 2.x及以上不再支持IE8),并且确保jQuery脚本在你的检测脚本之前加载。
  • 浏览器UA检测不是100%可靠的,有些浏览器会修改UA字符串。如果你的需求是针对特定浏览器的特性兼容,更推荐使用特性检测(比如检测某个API是否存在)而不是UA检测。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:22:49