繁体   English   中英

如何修复document.body是null-error

[英]how to fix a document.body is null-error

我有一个document.body在我的javascript中是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
    });
}

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

很抱歉,如果不清楚我虽然没有必要在这里放置演示,也不需要代码。 不过,我要感谢那些正在努力帮助的人们!

我同意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();
});

包含<body>标记(例如,在ready回调中)和/或使用Standards Mode doctype声明后,确保只调用$(window).width() 无论如何你应该这样做:Quirks Mode很糟糕。

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

你必须包括jquery.js,而不是jquery.min.js它看起来像它中的一些bug这对我有用

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM