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

JavaScript获取窗口宽度后无法使用windowWidth变量问题求助

问题排查:无法使用windowWidth变量的原因及解决方法

嘿,我来帮你捋捋为啥用不了windowWidth变量~ 大概率是下面这几个常见问题导致的:

最可能的原因:你没调用getWidth()函数

你只定义了计算宽度的函数,但从来没执行它啊!windowWidth初始值是空字符串,只有调用getWidth()后,它才会被赋值。比如你得在代码里主动加一句getWidth();,或者在合适的时机(比如页面加载、窗口大小变化时)触发它。

次要可能:jQuery没正确引入

你的代码依赖$、$(window)这些jQuery语法,如果页面里没先加载jQuery库,浏览器会直接报错$ is not defined,函数根本执行不了,windowWidth自然还是空的。

执行时机不对

如果你的代码在<body>元素加载完成前就运行了,$("body").css("font-size")会获取不到有效数值(甚至返回undefined),除法运算会出错,windowWidth可能变成NaN或者保持初始值。这种情况要确保代码在DOM加载完成后再执行。


修正后的示例代码

// 务必先在页面中加载jQuery!
var windowWidth = ''; 

function getWidth() {
  // 先判断字体大小是否有效,避免报错
  var bodyFontSize = parseFloat($("body").css("font-size"));
  if (!isNaN(bodyFontSize)) {
    windowWidth = $(window).width() / bodyFontSize;
  } else {
    console.error("无法获取body的字体大小,请检查DOM是否加载完成");
  }
}

// 页面加载完成后执行一次
$(document).ready(function() {
  getWidth();
  // 在这里测试变量是否正常
  console.log("初始窗口宽度(rem单位):", windowWidth);
});

// 如果需要窗口大小变化时自动更新,加上这段
$(window).resize(function() {
  getWidth();
  console.log("更新后的窗口宽度(rem单位):", windowWidth);
});

你可以打开浏览器开发者工具(F12)查看控制台,有没有报错信息,这能帮你更快定位问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:24:19