質問

次を使用しているため、javascriptでdocument.body is nullエラーが発生しています:

$(window).width()

myの変数に割り当てる値として

$(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()を呼び出します。

これが明確でない場合は申し訳ありませんが、このためにデモもコードもここに置く必要はありませんでした。 しかし、私は助けようとしている人々に感謝したいと思います!

役に立ちましたか?

解決

outisに同意します-さらにコードが必要です。

それは言った:

  • 本当に$(document).ready関数内で作業をすべてしているのですか?
  • 間違いなく正しく形成された(閉じた)bodyタグと有効なxhtmlを持っていますか?
  • これはすべてのブラウザで発生しますか?

1つの提案:

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

他のヒント

$(window).width() を呼び出すのは、<body>タグを含めた(たとえば、準備完了コールバックに)だけにするか、標準モードのdoctype宣言を使用するようにしてください。とにかくそれをしている必要があります:Quirksモードは悪いです。

問題は、Quirksモードでビューポートサイズを読み取るために、jQueryはdocument.body.clientWidthではなくdocument.documentElement.clientWidthを確認する必要があることです。 document.bodyをまだ開始していない場合、<=>ノードは存在しません。

jquery.min.jsではなく、jquery.jsを含める必要があります それはいくつかのバグのように見えます これは私のために動作します

まあ、ちょうどあなたが私に与えた情報に基づいて、それは体がまだ適切にロードされていないということかもしれません。詳細については、こちらをご覧ください: http ://www.coderanch.com/t/122834/HTML-JavaScript/document-body-null-or-not#606782

もっと言いたいのですが、デバッグするためにさらにコードを投稿する必要があるという意見にも同意します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top