如何修复 document.body 为空错误

Posted

技术标签:

【中文标题】如何修复 document.body 为空错误【英文标题】:how to fix a document.body is null-error 【发布时间】:2010-12-08 21:30:39 【问题描述】:

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

$(window).width()

作为值分配给我的变量

$(document).ready(function());

我将非常感谢任何可以帮助我的人。

亲切的问候

编辑:对不起,如果这一切都不清楚。我有一个演示:http://www.wpmonk.com/demo/hypowired 起初主题会加载,然后变成白色(因为错误)但是当你重新加载时你可以看到整个主题,因为他知道 $(window).width() 的值

我正在使用此代码使布局居中(使用 css 不可能,因为左侧也需要有宽度。)

function positioneerElement()      
    $breedte = (document.body.clientWidth - 1124) / 2;
    $('#bg_left').css(
        'width': $breedte
    );
    $('.container').css(
        'margin-left': $breedte
    );

我在加载函数中调用函数positioneerElement()

很抱歉,如果不清楚,我虽然没有必要在此处放置演示或代码。 不过,我要感谢那些试图提供帮助的人!

【问题讨论】:

请发布一个最小的测试用例:足够的代码来完成并产生错误,但不会更多。 你们为什么不学会对这样的问题投反对票?!将鼠标悬停在向下箭头上,阅读工具提示,然后做你该死的工作。 @Josh:我觉得可能有点苛刻。我想我们可能会先询问更多信息? Ayrton 可能真的认为不需要更多信息。希望他会更新问题。但是通过投票,人们不太可能试图提供帮助,他也不太可能得到答案。我认为 SO 社区是来帮助人们的,而不是因为沟通不畅而责备和惩罚他们...... 来吧@Damovisa,你知道所有关于代表的事情;)投票赞成修复。 @Justin - 哦,伙计,你是对的。对不起,我在想什么? :) 【参考方案1】:

您必须包含 jquery.js,而不是 jquery.min.js 它看起来像其中的一些错误 这对我有用

【讨论】:

【参考方案2】:

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

也就是说:

您确定在 $(document).ready 函数中完成所有您的工作吗? 您确定有正确格式(和封闭)的正文标记和有效的 xhtml? 所有浏览器都会出现这种情况吗?

一个建议:

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

$(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();
);

【讨论】:

我添加了更多信息,我在准备好的函数中完成了这一切,是的,我的代码应该是有效的 xhtml 并且在每个浏览器中都会发生这种情况 非常感谢。显然,这一切都与此有关。我觉得这很奇怪,因为在其他项目中我不需要将函数放在我的 document.ready 中。干杯【参考方案3】:

确保您只在包含<body> 标签(例如在就绪回调中)和/或使用标准模式文档类型声明之后才调用$(window).width()。无论如何你都应该这样做:怪癖模式很糟糕。

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

【讨论】:

【参考方案4】:

嗯,根据你给我的信息,可能是身体还没有正确加载。更多详情请看这里:http://www.coderanch.com/t/122834/HTML-JavaScript/document-body-null-or-not#606782

我会说更多,但我也同意 outis 你需要发布更多代码供我们调试。

【讨论】:

以上是关于如何修复 document.body 为空错误的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 javascript 中的 document.body 为空?

WebBrowser.Document.Body 始终为空

如何修复错误:查询为空? [复制]

如何修复 Git 错误“目标文件 ... 为空”?

如何修复 Git 错误“目标文件 ... 为空”?

如何修复“在应用程序配置中找不到连接名称'LocalSqlServer'或连接字符串为空。”错误?