Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pb mozilla dans script

6 réponses
Avatar
phil89
Bonsoir,

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 ?

Merci d'avance Philippe



<!-- contentType=3D"text/html; charset=3DUTF-16" -->






<html>
<head>



<meta http-equiv=3DAccept-Language CONTENT=3D"fr">
<META HTTP-EQUIV=3D"Content-Type" content=3D"text/html;
charset=3DISO-8859-1" >

</head>
<body bgcolor=3D"#cbdea8">



<div id=3D"precsuiv" style=3D"position: absolute; top: 0 px; left: 0 px;"
nowrap=3D"nowrap">

<script type=3D"text/javascript"><!--
function maskKeyPress(objEvent) { var iKeyCode, strKey;
if (document.all) { iKeyCode =3D objEvent.keyCode; } else
{ iKeyCode =3D objEvent.which; } strKey =3D
String.fromCharCode(iKeyCode); if( 13 =3D=3D iKeyCode )
{self.location.href=3Drmax2('',inp.value,'rmax'); } }
// --></script>
<table cellspacing=3D"0" cellpadding=3D"0" ><tr><td style=3D"border:1px
medium solid;font-family:arial;font-size:8pt" ><table cellspacing=3D"0"
cellpadding=3D"0" border=3D"1" width=3D"100%" ><tr><td style=3D"border:1px
medium solid;font-family:arial;font-size:8pt"><input type=3D"text"
name=3D"inp" size=3D3 onkeypress=3D"return maskKeyPress(event)" ></
td><td><button style=3D"border:1px buttonface solid;font-
family:arial;font-size:8pt" id=3D"precsuive1" accesskey=3D"I"
onClick=3D"self.location.href=3Drmax2('',inp.value,'rmax')"
onmouseup=3D"this.style.border=3D'1px buttonhighlight
outset';window.focus();" onselectstart=3D"return false;"
onmouseover=3D"this.style.border=3D'1px buttonhighlight outset'"
onmouseout=3D"this.style.border=3D'1px buttonface solid'"
onmousedown=3D"this.style.border=3D'1px buttonhighlight inset'"><img src=3D"=
/
infodev/images/rmax.png" width=3D"24" height=3D"24" border=3D"0"
onmouseover=3D"this.src=3D'/infodev/images/rmax.png'"
onmouseout=3D"this.src=3D'/infodev/images/rmax.png'"></button></td></tr></
table></td><td>
<button style=3D"border:1px buttonface solid;font-family:arial;font-size:
8pt" id=3D"precsuive2" accesskey=3D"M" onClick=3D"window.print()"
onmouseup=3D"this.style.border=3D'1px buttonhighlight
outset';window.focus();" onselectstart=3D"return false;"
onmouseover=3D"this.style.border=3D'1px buttonhighlight outset'"
onmouseout=3D"this.style.border=3D'1px buttonface solid'"
onmousedown=3D"this.style.border=3D'1px buttonhighlight
inset'"><table><tr><td><img src=3D"/infodev/images/hcopy_nb.png"
width=3D"24" height=3D"24" border=3D"0" onmouseover=3D"this.src=3D'/infodev/=

images/hcopy.png'" onmouseout=3D"this.src=3D'/infodev/images/
hcopy_nb.png'"></td><td>Impression</td></tr></table></button>
<button style=3D"border:1px buttonface solid;font-family:arial;font-size:
8pt" id=3D"precsuive3" accesskey=3D"M" onClick=3D"parent.location=3D'mailto:=
'"
onmouseup=3D"this.style.border=3D'1px buttonhighlight
outset';window.focus();" onselectstart=3D"return false;"
onmouseover=3D"this.style.border=3D'1px buttonhighlight outset'"
onmouseout=3D"this.style.border=3D'1px buttonface solid'"
onmousedown=3D"this.style.border=3D'1px buttonhighlight
inset'"><table><tr><td><img src=3D"/infodev/images/courrier_nb.png"
width=3D"24" height=3D"24" border=3D"0" onmouseover=3D"this.src=3D'/infodev/=

images/courrier.png'" onmouseout=3D"this.src=3D'/infodev/images/
courrier_nb.png'"></td><td>Courriel</td></tr></table></button>
<button style=3D"border:1px buttonface solid;font-family:arial;font-size:
8pt" id=3D"precsuive4" accesskey=3D"I" onClick=3D"location.href=3D'http://
www.infodev.fr';" onmouseup=3D"this.style.border=3D'1px buttonhighlight
outset';window.focus();" onselectstart=3D"return false;"
onmouseover=3D"this.style.border=3D'1px buttonhighlight outset'"
onmouseout=3D"this.style.border=3D'1px buttonface solid'"
onmousedown=3D"this.style.border=3D'1px buttonhighlight
inset'"><table><tr><td><img src=3D"/infodev/images/maison.png"
width=3D"24" height=3D"24" border=3D"0" onmouseover=3D"this.src=3D'/infodev/=

images/maison.png'" onmouseout=3D"this.src=3D'/infodev/images/
maison.png'"></td><td><u>I</u>nfodev</td></tr></table></button>
</td></tr></table></div>
<script language=3D"JavaScript">
var butprecsuiv,precsuivWidth=3D0;
for(var iprecsuiv=3D1; iprecsuiv<=3D4; iprecsuiv++)
{
if (document.layers)
butprecsuiv=3Ddocument.layers['precsuive'+iprecsuiv];
else
if (document.all)
butprecsuiv=3Ddocument.all['precsuive'+iprecsuiv];
else
if (document.getElementById)
butprecsuiv=3Ddocument.getElementById['precsuive'+iprecsuiv];
if (butprecsuiv.offsetWidth>precsuivWidth)
precsuivWidth=3Dbutprecsuiv.offsetWidth;
}
for(var iprecsuiv=3D1; iprecsuiv<=3D4; iprecsuiv++)
{
if (document.layers)
butprecsuiv=3Ddocument.layers['precsuive'+iprecsuiv];
else
if (document.all)
butprecsuiv=3Ddocument.all['precsuive'+iprecsuiv];
else
if (document.getElementById)
butprecsuiv=3Ddocument.getElementById['precsuive'+iprecsuiv];
}
</script>

<br>
<br>
<br>
<CENTER>
<P>
<!-- $MVD$:spaceretainer() -->&nbsp;</P>
</CENTER>
</BODY>
</HTML>

6 réponses

Avatar
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

Avatar
phil89
Bonjour,

J'ai remplace la fonction, je n'ai plus d'erreur, mais pourquoi
seulement le precsuive4, j'ai bien une boucle ?
Avatar
SAM
Bonjour,

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.

Avatar
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
Avatar
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

Avatar
phil89
Ce sont des boutons de type <button

Merci