我有代码插入一个元素并测量它的宽度。使用F5刷新(使用缓存)时,宽度为440px。使用CTRL + SHIFT + R(重新下载缓存文件)时,宽度为290px。类似的问题建议使用$(window).load
。但我已经尝试过,行为没有变化。在10秒内超时运行代码也会产生不同的结果。
似乎问题是在应用css之前运行测量。但是使用load事件和/或10秒超时应该可以解决这个问题。它没有。
这是Firefox 30.页面上禁用了所有其他脚本。 JS文件加载到页脚中,css加载到<head>
。
样品:
var $el = $(...);
$el.css('position','absolute').css('left','-9999999px');
$parent.append($el);
var Width = parseInt($el.outerWidth(), 10);
console.log('Width: '+Width); //290 OR 440
无法解决问题的类似问题:
Jquery width() function on chrome gives me different values on loading and reload(F5)
答案 0 :(得分:0)
使用 defer 嵌入脚本,如下所示:
<script defer src="yourscript.js"></script>
使用 defer 加载脚本可确保在解析文档后(但在触发DOMContentLoaded之前)执行该脚本。