document.bodyの修正方法はnullエラーです
-
05-07-2019 - |
質問
次を使用しているため、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
もっと言いたいのですが、デバッグするためにさらにコードを投稿する必要があるという意見にも同意します。