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

Safari 9及更低版本无法加载JavaScript和jQuery代码求助

搞定Safari 9及更低版本的JS/jQuery脚本加载问题

兄弟,我帮你捋捋这个头疼的问题——你的脚本在老Safari里跑不起来,核心原因其实很清晰,咱们一步步来解决:

揪出问题根源

你代码里用到了fetch() API,但Safari 9及更早版本完全不支持这个玩意儿,这绝对是主要的“罪魁祸首”。另外还要留意jQuery版本:如果你用的是jQuery 3.x及以上,它早就放弃支持Safari 8及更低版本了,这也会导致脚本出问题。

具体修复方案

1. 把fetch换成兼容性更好的jQuery Ajax

既然老Safari不认fetch,直接改用jQuery自带的$.ajax(),这玩意儿在老浏览器里稳得一批:

// 替换你原来的req1函数
function req1() {
  $.ajax({
    url: 'https://jsonplaceholder.typicode.com/...', // 补全你的完整接口地址
    method: 'GET',
    success: function(data) {
      // 这里写你原来fetch成功后要执行的逻辑
    },
    error: function(xhr, status, error) {
      // 这里加错误处理的代码
    }
  });
}

2. 选对jQuery版本

如果必须支持Safari 8及更低版本,一定要用jQuery 2.x系列(最后一个稳定版是2.2.4),jQuery 3.x已经把这些老浏览器彻底抛弃了。

3. 非要用fetch?试试polyfill(可选)

要是你实在不想改代码,也可以引入whatwg-fetch polyfill来让老Safari支持fetch,但记得要在你的脚本之前加载它:

<!-- 放在你的业务脚本前面引入 -->
<script src="https://cdn.jsdelivr.net/npm/whatwg-fetch@3.6.2/dist/fetch.umd.min.js"></script>

不过我更推荐用jQuery Ajax,少加一个依赖更省心。

额外要检查的地方

  • 看看你的代码里有没有用ES6+的语法,比如箭头函数() => {}、let/const这些,老Safari对这些支持也不全,要是用了就换成ES5的写法(比如普通函数、var)。
  • 打开Safari的开发者工具看控制台,有没有具体的报错信息,比如资源加载失败、语法错误啥的,这些能帮你更快定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:49:28