Sous Mozilla uniqument j'ai le message 'butprecsuiv has no properties
has no properties'
sur la ligne
if (butprecsuiv.offsetWidth>precsuivWidth)
precsuivWidth=3Dbutprecsuiv.offsetWidth...
comment puis je contourner ce probleme sp=E9cifique =E0 MOZILLA ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
SAM
Bonsoir,
Sous Mozilla uniqument j'ai le message 'butprecsuiv has no properties has no properties' sur la ligne if (butprecsuiv.offsetWidth>precsuivWidth) precsuivWidth=butprecsuiv.offsetWidth...
comment puis je contourner ce probleme spécifique à MOZILLA ?
Bon, soit tu reformattes ton code qu'on puisse le lire soit tu files une url où c'est consultable.
'has no properties' veut en général dire que l'objet n'existe pas pour Mozz par exemple quand on l'appelle par
document.getElementById('monObjet')
alors que le malheureux n'a pas d'id ...
Penser à donner un id aux éléments du DOM
Le laxiste IE se contente de 'name' qui pour lui est kifkif 'id' le bêta !
Pour le cas présent c'est : document.getElementById('precsuive'+iprecsuiv); et non pas : document.getElementById['precsuive'+iprecsuiv];
getElementById() est une fonction et non pas une collection
Ceci dit en passant, ton JS ne fait au mieux que : butprecsuiv = document.getElementById('precsuive4'); il ne repèrera que le bouton 4
-- sm
Bonsoir,
Sous Mozilla uniqument j'ai le message 'butprecsuiv has no properties
has no properties'
sur la ligne
if (butprecsuiv.offsetWidth>precsuivWidth)
precsuivWidth=butprecsuiv.offsetWidth...
comment puis je contourner ce probleme spécifique à MOZILLA ?
Bon, soit tu reformattes ton code qu'on puisse le lire
soit tu files une url où c'est consultable.
'has no properties' veut en général dire que l'objet n'existe pas pour Mozz
par exemple quand on l'appelle par
document.getElementById('monObjet')
alors que le malheureux n'a pas d'id ...
Penser à donner un id aux éléments du DOM
Le laxiste IE se contente de 'name' qui pour lui est kifkif 'id'
le bêta !
Pour le cas présent c'est :
document.getElementById('precsuive'+iprecsuiv);
et non pas :
document.getElementById['precsuive'+iprecsuiv];
getElementById() est une fonction et non pas une collection
Ceci dit en passant, ton JS ne fait au mieux que :
butprecsuiv = document.getElementById('precsuive4');
il ne repèrera que le bouton 4
Sous Mozilla uniqument j'ai le message 'butprecsuiv has no properties has no properties' sur la ligne if (butprecsuiv.offsetWidth>precsuivWidth) precsuivWidth=butprecsuiv.offsetWidth...
comment puis je contourner ce probleme spécifique à MOZILLA ?
Bon, soit tu reformattes ton code qu'on puisse le lire soit tu files une url où c'est consultable.
'has no properties' veut en général dire que l'objet n'existe pas pour Mozz par exemple quand on l'appelle par
document.getElementById('monObjet')
alors que le malheureux n'a pas d'id ...
Penser à donner un id aux éléments du DOM
Le laxiste IE se contente de 'name' qui pour lui est kifkif 'id' le bêta !
Pour le cas présent c'est : document.getElementById('precsuive'+iprecsuiv); et non pas : document.getElementById['precsuive'+iprecsuiv];
getElementById() est une fonction et non pas une collection
Ceci dit en passant, ton JS ne fait au mieux que : butprecsuiv = document.getElementById('precsuive4'); il ne repèrera que le bouton 4
-- sm
phil89
Bonjour,
J'ai remplace la fonction, je n'ai plus d'erreur, mais pourquoi seulement le precsuive4, j'ai bien une boucle ?
Bonjour,
J'ai remplace la fonction, je n'ai plus d'erreur, mais pourquoi
seulement le precsuive4, j'ai bien une boucle ?
J'ai remplace la fonction, je n'ai plus d'erreur, mais pourquoi seulement le precsuive4, j'ai bien une boucle ?
oui, en effet.
et on doit obtenir finalement la largeur la plus grande de tous les boutons.
phil89
Oui par contre l'affectation sous Firefox pose probleme, cela fonctionne sous IE J'ai essaye butprecsuiv.style.pixelWidth=precsuivWidth; et butprecsuiv.style.pixelWidth=precsuivWidth+"px";
sans succes
Oui par contre l'affectation sous Firefox pose probleme, cela
fonctionne sous IE
J'ai essaye
butprecsuiv.style.pixelWidth=precsuivWidth;
et
butprecsuiv.style.pixelWidth=precsuivWidth+"px";
Oui par contre l'affectation sous Firefox pose probleme, cela fonctionne sous IE J'ai essaye butprecsuiv.style.pixelWidth=precsuivWidth; et butprecsuiv.style.pixelWidth=precsuivWidth+"px";
sans succes
SAM
Oui par contre l'affectation sous Firefox pose probleme, cela fonctionne sous IE J'ai essaye butprecsuiv.style.pixelWidth=precsuivWidth; et butprecsuiv.style.pixelWidth=precsuivWidth+"px";
sans succes
Attention !
1) pixelWidth : quoi ça être ? 2) si les boutons sont un A ou un SPAN on ne peut leur affecter une largeur il faut préalablement les modifier en BLOCK
Démo :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="fr"> <head> <title>unifier boutons</title> <script type="text/javascript">
function largeurBoutons() { // rappel : offsetWidth = largeur + padding + border // styles bordures et padding des boutons var bord_width = 4; var espace = 9; // retrouver le bon bouton var bouton = function(x) {return document.getElementById('bout_'+x);}; // largeur max var max = 0; for(var i=1; i<6; i++) if(bouton(i) && bouton(i).offsetWidth && bouton(i).offsetWidth>max) max = bouton(i).offsetWidth; max = max - ( bord_width *2) - (espace *2); // donner largeur maxi aux boutons if(max > 0) for(var i=1; i<6; i++) if(bouton(i)) { bouton(i).style.display = 'block'; bouton(i).style.width = max + 'px'; } alert(max); } window.onload = largeurBoutons; </script> <style type="text/css"> #menu a { padding: 4px 9px; border: 4px solid; text-decoration: none; text-align: center;} </style> </head> <body> <div id="menu"> <p><a href="#" id="bout_1">menu 1</a></p> <p><a href="#" id="bout_2">menu 2 un peu long</a></p> <p><a href="#" id="bout_3">menu 3 plus court</a></p> <p><a href="#" id="bout_4">menu 4 beaucoup plus long</a></p> <p><a href="#" id="bout_5">menu 5</a></p> </div> </body> </html>
-- sm
Oui par contre l'affectation sous Firefox pose probleme, cela
fonctionne sous IE
J'ai essaye
butprecsuiv.style.pixelWidth=precsuivWidth;
et
butprecsuiv.style.pixelWidth=precsuivWidth+"px";
sans succes
Attention !
1) pixelWidth : quoi ça être ?
2) si les boutons sont un A ou un SPAN
on ne peut leur affecter une largeur
il faut préalablement les modifier en BLOCK
Démo :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="fr">
<head>
<title>unifier boutons</title>
<script type="text/javascript">
function largeurBoutons() {
// rappel : offsetWidth = largeur + padding + border
// styles bordures et padding des boutons
var bord_width = 4;
var espace = 9;
// retrouver le bon bouton
var bouton = function(x) {return document.getElementById('bout_'+x);};
// largeur max
var max = 0;
for(var i=1; i<6; i++)
if(bouton(i) && bouton(i).offsetWidth && bouton(i).offsetWidth>max)
max = bouton(i).offsetWidth;
max = max - ( bord_width *2) - (espace *2);
// donner largeur maxi aux boutons
if(max > 0) for(var i=1; i<6; i++)
if(bouton(i)) {
bouton(i).style.display = 'block';
bouton(i).style.width = max + 'px';
}
alert(max);
}
window.onload = largeurBoutons;
</script>
<style type="text/css">
#menu a { padding: 4px 9px; border: 4px solid;
text-decoration: none; text-align: center;}
</style>
</head>
<body>
<div id="menu">
<p><a href="#" id="bout_1">menu 1</a></p>
<p><a href="#" id="bout_2">menu 2 un peu long</a></p>
<p><a href="#" id="bout_3">menu 3 plus court</a></p>
<p><a href="#" id="bout_4">menu 4 beaucoup plus long</a></p>
<p><a href="#" id="bout_5">menu 5</a></p>
</div>
</body>
</html>
Oui par contre l'affectation sous Firefox pose probleme, cela fonctionne sous IE J'ai essaye butprecsuiv.style.pixelWidth=precsuivWidth; et butprecsuiv.style.pixelWidth=precsuivWidth+"px";
sans succes
Attention !
1) pixelWidth : quoi ça être ? 2) si les boutons sont un A ou un SPAN on ne peut leur affecter une largeur il faut préalablement les modifier en BLOCK
Démo :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="fr"> <head> <title>unifier boutons</title> <script type="text/javascript">
function largeurBoutons() { // rappel : offsetWidth = largeur + padding + border // styles bordures et padding des boutons var bord_width = 4; var espace = 9; // retrouver le bon bouton var bouton = function(x) {return document.getElementById('bout_'+x);}; // largeur max var max = 0; for(var i=1; i<6; i++) if(bouton(i) && bouton(i).offsetWidth && bouton(i).offsetWidth>max) max = bouton(i).offsetWidth; max = max - ( bord_width *2) - (espace *2); // donner largeur maxi aux boutons if(max > 0) for(var i=1; i<6; i++) if(bouton(i)) { bouton(i).style.display = 'block'; bouton(i).style.width = max + 'px'; } alert(max); } window.onload = largeurBoutons; </script> <style type="text/css"> #menu a { padding: 4px 9px; border: 4px solid; text-decoration: none; text-align: center;} </style> </head> <body> <div id="menu"> <p><a href="#" id="bout_1">menu 1</a></p> <p><a href="#" id="bout_2">menu 2 un peu long</a></p> <p><a href="#" id="bout_3">menu 3 plus court</a></p> <p><a href="#" id="bout_4">menu 4 beaucoup plus long</a></p> <p><a href="#" id="bout_5">menu 5</a></p> </div> </body> </html>