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

Uncaught ReferenceError: retrieveData未定义问题排查(JS模块作用域)

问题根源

用type="module"引入的ES模块有独立作用域,模块里定义的retrieveData函数默认不会暴露到全局。而HTML选择框的onchange属性是在全局作用域查找函数,自然找不到,就触发了Uncaught ReferenceError。

解决办法

方法1:规范写法(推荐)

直接在cart.js里给选择框绑定事件,不用依赖全局作用域:

// cart.js 代码示例
function retrieveData() {
  // 你的业务逻辑
}

// 替换成你实际的选择器,比如id或class
const selectBox = document.querySelector('#your-select-id');
// 绑定change事件
selectBox.addEventListener('change', retrieveData);

记得把HTML里选择框的onchange="retrieveData()"属性删掉。

方法2:强行暴露到全局(不推荐)

如果非要保留HTML里的onchange属性,可以把函数挂载到window对象上:

// cart.js 代码示例
function retrieveData() {
  // 你的业务逻辑
}

// 将函数暴露到全局作用域
window.retrieveData = retrieveData;

这种写法会破坏模块的封装性,尽量避免使用。

额外检查项
  • 确认cart.js的引入路径正确,别因为路径错误导致模块未加载。
  • 清除浏览器缓存:按Ctrl+Shift+R强制刷新页面,避免加载旧的缓存文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 13:35:47