как исправить документ.значение body равно нулю-ошибка
-
05-07-2019 - |
Вопрос
У меня есть документ.body - это ошибка null в моем javascript, потому что я использую:
$(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()
в функции загрузки.
Извините, если это было непонятно, я думал, что для этого не было необходимости размещать здесь демо-версию или код.Однако я хотел бы поблагодарить людей, которые пытаются помочь!
Решение
Я согласен с outis - нам нужно еще немного кода.
Это сказало:
- Ты уверен, что делаешь ВСЕ ваша работа внутри $(документа).готовая функция?
- У вас точно есть правильно сформированный (и закрытый) тег body и допустимый xhtml?
- Происходит ли это во всех браузерах?
Одно предложение:
Сохраняется ли проблема, если вы устанавливаете positioneerElement
функция в $(документе).тоже готовая функция?Мне интересно, оценивает ли браузер 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>
(например, в готовый обратный вызов), и / или используете объявление типа документа в режиме стандартов. Вы должны делать это в любом случае: режим Quirks отстой.
Проблема в том, что для чтения размера области просмотра в режиме Quirks jQuery должен смотреть на document.body.clientWidth
вместо document.documentElement.clientWidth
. Если вы еще не запустили свой document.body
, там нет узла <=>.
Вы должны включить jquery.js, а не jquery.min.js Похоже, какая-то ошибка в нем Это работает для меня
Ну, просто на основании информации, которую вы мне дали, может быть, тело еще не загружено должным образом. Дополнительную информацию можно найти здесь: http : //www.coderanch.com/t/122834/HTML-JavaScript/document-body-null-or-not#606782
Я бы сказал больше, но я также согласен с тем, что вам нужно опубликовать еще немного кода для отладки.