cómo arreglar un documento. el cuerpo es nulo-error
-
05-07-2019 - |
Pregunta
Estoy teniendo un document.body es un error nulo en mi javascript porque uso:
$(window).width()
como valor para asignar a una variable en mi
$(document).ready(function(){});
Estaría muy agradecido con cualquiera que pudiera ayudarme con esto.
Saludos cordiales
editar: perdón si todo esto no estaba claro. Tengo una demostración en: http://www.wpmonk.com/demo/hypowired al principio, el tema se cargará, pero luego se vuelve blanco (debido al error), pero cuando vuelve a cargar, puede ver todo el tema porque entonces conoce el valor de $ (ventana) .width ()
Estoy usando este código para centrar el diseño (no es posible con css porque la izquierda también debe tener un ancho).
function positioneerElement(){
$breedte = (document.body.clientWidth - 1124) / 2;
$('#bg_left').css({
'width': $breedte
});
$('.container').css({
'margin-left': $breedte
});
}
Llamo a la función positioneerElement()
en la función de carga.
Lo siento si esto no estaba claro, aunque no era necesario poner la demostración aquí para esto ni para el código. ¡Sin embargo, me gustaría agradecer a las personas que están tratando de ayudar!
Solución
Estoy de acuerdo con outis: necesitamos más código.
Dicho eso:
- ¿Está seguro de que está haciendo todo su trabajo dentro de la función $ (document) .ready?
- ¿Definitivamente tiene una etiqueta de cuerpo correctamente formada (y cerrada) y un xhtml válido?
- ¿Esto sucede en todos los navegadores?
Una sugerencia:
¿El problema persiste si coloca la función positioneerElement
en la función $ (document) .ready también? Me pregunto si el navegador evalúa document.body antes de cargar el 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();
});
Otros consejos
Asegúrese de llamar solo a $(window).width()
después de que haya incluido la etiqueta <body>
(por ejemplo, en la devolución de llamada lista), y / o use una declaración de tipo de modo estándar. Deberías estar haciendo eso de todos modos: el modo Quirks apesta.
El problema es que, para leer el tamaño de la ventana gráfica en el modo Quirks, jQuery debe mirar document.body.clientWidth
en lugar de document.documentElement.clientWidth
. Si aún no ha comenzado su document.body
, no hay <=> nodo presente.
Debe incluir jquery.js, y no jquery.min.js Parece un error Esto funciona para mí
Bueno, basándome en la información que me ha proporcionado, es posible que el cuerpo aún no se haya cargado correctamente. Consulte aquí para obtener más detalles: http : //www.coderanch.com/t/122834/HTML-JavaScript/document-body-null-or-not#606782
Diría más, pero también estoy de acuerdo con outis en que necesita publicar más código para que podamos depurarlo.