como consertar um document.body é nulo de erros
-
05-07-2019 - |
Pergunta
Eu estou tendo um document.body é erro nulo no meu javascript porque eu uso:
$(window).width()
como valor a atribuir a uma variável no meu
$(document).ready(function(){});
Eu ficaria muito grato a alguém que pudesse me ajudar com isso.
Atenciosamente
edit: desculpe se isso tudo não era clara. Eu tenho um programa demonstrativo em: http://www.wpmonk.com/demo/hypowired No início, o tema irá carregar, mas depois torna-se branco (por causa do erro), mas quando você recarregar você pode ver todo o tema, porque então ele sabe o valor para $ (janela) .width ()
Eu estou usando este código para centralizar o layout (não é possível com css porque as necessidades de esquerda para ter um aswell largura.)
function positioneerElement(){
$breedte = (document.body.clientWidth - 1124) / 2;
$('#bg_left').css({
'width': $breedte
});
$('.container').css({
'margin-left': $breedte
});
}
Eu chamo função positioneerElement()
na função de carga.
Desculpe se isso não estava claro que embora não fosse necessário colocar o demo aqui para isso, nem o código. No entanto, eu gostaria de agradecer as pessoas que estão tentando ajudar!
Solução
Eu concordo com outis - precisamos de mais algum código
.Dito isto:
- Você tem certeza de que está fazendo todas o seu trabalho dentro do (documento) função de .ready $?
- Você definitivamente tem um tag corpo corretamente formado (e fechada) e XHTML?
- Isso acontece em todos os navegadores?
Uma sugestão:
O problema persiste se você colocar a função positioneerElement
na (documento) função de .ready $ também? Eu estou querendo saber se os avalia navegador document.body antes do carregamento do documento.
$(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();
});
Outras dicas
Certifique-se de você só $(window).width()
chamada após você incluiu a tag <body>
(ex. Na callback pronto), e / ou usar uma declaração doctype Standards Mode. Você deve estar fazendo isso de qualquer maneira:. Quirks Mode suga
A questão é, para ler o tamanho da janela no modo Quirks jQuery deve olhar para document.body.clientWidth
vez de document.documentElement.clientWidth
. Se você ainda não começou a sua <body>
ainda, não há document.body
nó presente.
Você tem que incluir jquery.js, e não jquery.min.js Parece que algum bug nele Isso funciona para mim
Bem, apenas com base nas informações que você tem me dado pode ser que o corpo ainda não foi carregado corretamente. Consulte aqui para mais detials: http : //www.coderanch.com/t/122834/HTML-JavaScript/document-body-null-or-not#606782
Eu diria mais, mas eu também concordo com outis que você precisa postar mais algum código para nós depuração.