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

JavaScript控制台无法打印username,报错ReferenceError: user未定义

问题解决办法

核心问题原因

带src属性的<script>标签不会执行标签内部的代码,浏览器只会加载并运行外部JS文件,所以你定义的user变量根本没有被初始化,导致cart.js中访问时出现未定义错误。

修复步骤

  • 将定义user变量的代码单独放在一个独立的<script>标签中,并且必须放在引入cart.js的标签之前,确保cart.js加载时这个全局变量已经存在。

修改后的HTML代码

<script type="text/javascript">
  var user = '{{request.user}}';
</script>
<script type="text/javascript" src="{% static 'js/cart.js' %}"></script>

cart.js代码优化建议(可选)

原代码中用户信息的打印逻辑在循环内部,会随按钮数量重复输出,建议移到循环外:

var updateBtns = document.getElementsByClassName("update-cart");

// 把用户判断移到循环外,避免重复打印
console.log('USER', user);
if(user == 'AnonymousUser'){
    console.log('Not logged in');
}else{
    console.log('User is logged in');
}

for(var i=0; i < updateBtns.length; i++){
    updateBtns[i].addEventListener('click', function(){
        var pid = this.dataset.item;
        var action = this.dataset.action;
        console.log('pid:', pid, 'action:', action);
    });
}

完成以上修改后,cart.js就能正常访问到user变量了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 04:25:16