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

iPhone Safari运行JS模块报Unexpected identifier 'getProject'错如何解决

问题根因

  • 第一个语法错误是因为iOS 14及更早版本的Safari不支持ES模块的顶级await特性,你直接在type="module"的script顶层写await语句,旧版iOS Safari无法识别,就会抛出标识符解析错误。
  • 第二个Vue报错是因为你把await逻辑放入async立即执行函数后,projectData被声明为函数内部的局部变量,外部的Vue实例无法访问到该变量,因此初始化时会提示未定义。

修复方案

把Vue实例的初始化逻辑也一并放入async立即执行函数内部,确保Vue初始化时已经拿到异步请求的projectData,同时不会出现顶级await的语法兼容问题,修改后代码如下:

<script async type="module">
import {projectCode} from "./assets/js/config.js";
import {getProject} from "./assets/js/saleproject.js";
import {getAccount} from "./assets/js/account.js";
import Vue from 'https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.esm.browser.js'

(async function () {
    // 异步获取项目数据
    const projectData = await getProject(projectCode);
    // 内部初始化Vue,可直接访问拿到的projectData
    new Vue({
        el: '#app',
        data() {
            return {
                projectData: projectData,
                // 其余你的原有data配置
            }
        },
        // 其余你的原有Vue配置:methods、filters、mounted等逻辑
    })
}())
</script>

该写法兼容所有支持ES模块的浏览器,覆盖所有主流iPhone设备的系统版本,不会再出现兼容报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:39:04