我的项目有问题。我需要检测页面高度并将此高度作为参数添加到url。它工作正常。但是当我在浏览器中尝试并尝试刷新页面几次时,有时会发生这种情况,之前的大小要小一些。有可能解决吗?
<script>
var body = document.body, html = document.documentElement;
var height = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight) + 40;
document.location.href += "#" + height;
</script>
答案 0 :(得分:1)
这来自asynchroniously
的{{1}}行为。我猜你的脚本执行时某些元素尚未加载(并不总是) - 并且由于缺少元素,高度也不同。
为防止这种情况发生,您应该在加载JavaScript
后执行代码。
document
或使用jQuery:
(function() {
var body = document.body, html = document.documentElement;
var height = Math.max(body.scrollHeight, body.offsetHeight,
html.clientHeight, html.scrollHeight, html.offsetHeight) + 40;
document.location.href += "#" + height;
})();