首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何修复document.body为空-错误

如何修复document.body为空-错误
EN

Stack Overflow用户
提问于 2009-10-22 05:36:11
回答 4查看 42.5K关注 0票数 11

我的javascript中有一个document.body is null错误,因为我使用:

代码语言:javascript
运行
复制
$(window).width()

作为赋值给我的

代码语言:javascript
运行
复制
$(document).ready(function(){});

我将非常感谢任何能在这方面帮助我的人。

亲切的问候

编辑:如果这一切都不清楚,很抱歉。我有一个演示:http://www.wpmonk.com/demo/hypowired一开始主题将加载,但后来变成白色(因为错误),但当您重新加载时,您可以看到整个主题,因为这样他就知道$(window).width()的值了。

我使用这段代码来居中布局(使用css不可能,因为左边也需要有宽度)。

代码语言:javascript
运行
复制
function positioneerElement(){      
    $breedte = (document.body.clientWidth - 1124) / 2;
    $('#bg_left').css({
        'width': $breedte
    });
    $('.container').css({
        'margin-left': $breedte
    });
}

我在load函数中调用函数positioneerElement()

如果这一点不清楚,很抱歉,我认为没有必要将演示放在这里,也没有必要放代码。无论如何,我要感谢那些试图帮助我们的人!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-10-22 05:54:11

我同意outis的观点--我们需要更多的代码。

这就是说:

  • 是否确实在$(document).ready函数中执行所有工作?
  • 是否确实具有格式正确(且封闭)的body标记和有效的xhtml?
  • 在所有浏览器上都会发生这种情况吗?

其中一个建议是:

如果将positioneerElement函数也放在$(document).ready函数中,问题是否仍然存在?我想知道在加载文档之前,浏览器是否会评估document.body。

代码语言:javascript
运行
复制
$(document).ready(function() {
    function positioneerElement(){      
    $breedte = (document.body.clientWidth - 1124) / 2;
    $('#bg_left').css({
        'width': $breedte
    });
    $('.container').css({
        'margin-left': $breedte
    });

    // your other code, including
    positioneerElement();
});
票数 8
EN

Stack Overflow用户

发布于 2009-10-22 05:57:33

确保仅在包含<body>标记后才调用$(window).width()。在就绪回调中),和/或使用标准模式文档类型声明。无论如何,你都应该这么做:怪癖模式太烂了。

问题是,要在怪癖模式下读取视口大小,jQuery必须查看document.body.clientWidth而不是document.documentElement.clientWidth。如果您尚未启动<body>,则不存在document.body节点。

票数 6
EN

Stack Overflow用户

发布于 2009-11-20 20:10:51

你必须包括jquery.js,而不是jquery.min.js它看起来像是其中的一些错误这对我来说是有效的

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1603810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档