Le corps de changer la balise style à l'aide de JavaScript
Je suis en train d'écrire un script pour modifier la largeur de la page, compte tenu de l'utilisateur de la largeur du client.
C'est quelque chose comme ceci:
function adjustWidth() {
width = 0;
if (window.innerHeight) {
width = window.innerWidth;
} else if (document.documentElement && document.documentElement.clientHeight) {
width = document.documentElement.clientWidth;
} else if (document.body) {
width = document.body.clientWidth;
}
if (width < 1152) {
document.getElementsByTagName("body").style.width="950px";
}
if (width >= 1152) {
document.getElementsByTagName("body").style.width="1075px";
}
}
window.onresize = function() {
adjustWidth();
};
window.onload = function() {
adjustWidth();
};
Avec ce script, j'obtiens une erreur de Firebug:
document.getElementsByTagName("body").style is undefined
Maintenant, ma question est, comment puis-je accéder au style de corps? Parce que dans la feuille css son sélecteur de largeur et de propriété sont définis.
- essayez de
getComputedStyle(elements).[style]
et exemplewindow.getComputedStyle(document.body).width
... en savoir javascript.info/tutorial/styles-and-classes-getcomputedstyle
Vous devez vous connecter pour publier un commentaire.
Que cette fonction renvoie une liste de nœuds, même si il n'y a qu'un
<body>
.Maintenant, cela étant dit, vous pouvez le faire avec du CSS au lieu de JavaScript. Avec les CSS media queries, vous faire de tels ajustements:
Requêtes de média travail dans IE9 et à peu près tous les autres navigateurs modernes. Pour IE8 vous pouvez retomber en JavaScript ou tout simplement de laisser le corps 100% de la fenêtre d'affichage de la largeur ou de quelque chose.
document.body
document.body
au lieu dedocument.getElementsByTagName("body")[0]
document.body
au lieu dedocument.getElementsByTagName("body")[0]
getElementsByTagName
retourne un tableau de nœuds de sorte que vous devez utiliser[]
d'accéder à des éléments.Essayer
document.getElementsByTagName("body")[0].style
Exemple:
Je crois que ce que vous obtenez de retour de
document.getElementsByTagName("body")
estHTMLCollection
. Vous devriez être en mesure d'utiliserdocument.getElementsByTagName("body")[0].style
pour obtenir ce que vous voulez.