Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2439 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Compatibilité du Javascript sous IE6 et Mozilla !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Compatibilité du Javascript sous IE6 et Mozilla !

n°1105803
angel92
Posté le 02-06-2005 à 16:50:45  profilanswer
 

bonjour, voila j'ai un script qui marche sur ie6 mais absolument pas sous mozilla, voila le script:
 

Citation :


var b = new Array(48);
var n=0;
var totale = 0;
 
 
for(c=0;c<=49;c++){
 b[c]=0; }
 
function ClickOn(num,champ)
 {
 
 if (totale >5 && b[num]==0)
     {
        alert('Desolé, vous ne pouvez selectioner que 6 numeros');
        }
 else if(totale <= 6 && b[num]==0)
  {
  champ.background = 'set_boules/boule_souris_click.gif';
  if(document.form_loterie.num.value=="" ) {document.form_loterie.num.value=num+"-"; }
  else { document.form_loterie.num.value=document.form_loterie.num.value+num+"-"; }
  b[num]=1;
        totale++;
  }
 
 else if (b[num]==1)
  {
  champ.background = 'set_boules/boule.gif';
  b[num]=0;
        numero = num+"-";
 
        var grille = document.form_loterie.num.value;
  yop = grille.replace(numero, "" );
        document.form_loterie.num.value = yop;
 
        totale--;
  }
 
}
 
 
function SourisOn(num,champ){
 if(b[num]==0)
  {
  champ.background = 'set_boules/boule_souris_on.gif';
 
  }
}
 
 
function SourisOut(num,champ){
 if(b[num]==0)
  {
  champ.background = 'set_boules/boule.gif';
  }
}
 
function doSubmit(bannerID){
  if (!bannerID) { alert("Vous devez cliquer sur un bandeau pour valider votre partie." ); }
        else if (totale !=6) { alert("Vous devez sélectionner 6 numéros." );}
     else {
 
   window.open('wait.php',"_blank",'width=290,height=250');
   document.form_loterie.annonceur.value = bannerID;
   document.form_loterie.submit();
     }
 
}
 
function reset(){
 
 document.form_loterie.num.value = "";
    totale=0;
 
     for (i;i<=49;i++)
        {
         document.i.background = 'set_boules/boule.gif';
        }
 
}
 


Message édité par angel92 le 02-06-2005 à 16:51:36
mood
Publicité
Posté le 02-06-2005 à 16:50:45  profilanswer
 

n°1105806
afbilou
pouet your life
Posté le 02-06-2005 à 16:54:19  profilanswer
 

C'est du vieux Javascript qui ne devrait plus etre utilisé.
 
Pour acceder a un objet de ton document tu as plein de mthodes comme :
document.getElementById, document.getElementsByTagName etc ...

n°1105817
afbilou
pouet your life
Posté le 02-06-2005 à 17:01:41  profilanswer
 
n°1105833
angel92
Posté le 02-06-2005 à 17:10:35  profilanswer
 

donc en gros pour modifier le fond d'une cellule ?
c'est plus:
champ.background = 'set_boules/boule_souris_click.gif';  
 
je doit mettre quoi a la place ?
 
sachant que "champs" c un parametre d'entré d'une fonction et qui devrait etre "this".

n°1105844
angel92
Posté le 02-06-2005 à 17:14:14  profilanswer
 

est ce que si chaque element a un id du type 1 2 ... 48
 
je met document.getElementbyId("1" ).background ? ?

n°1105849
afbilou
pouet your life
Posté le 02-06-2005 à 17:15:54  profilanswer
 

<div id="champ"></div>
 
document.getElementByID('champ').style.setProperty('background-color','pink','');

n°1105853
angel92
Posté le 02-06-2005 à 17:19:05  profilanswer
 

lol Waw !
 
Ca a bien changé en fait !
Merci beaucoup pour ton aide, je vais essayer des que possible ca :
 
document.getElementByID('champ').style.setProperty('background','source_de_limage.jpg','');
 
ca devrait marcher ?

n°1105886
masklinn
í dag viðrar vel til loftárása
Posté le 02-06-2005 à 17:27:45  profilanswer
 

non
style.setProperty('background-image','url(source_de_image)')
 
ou
style.backgroundImage = 'url(source_de_image)'
 
Faut que tu apprennes les CSS aussi :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1105907
afbilou
pouet your life
Posté le 02-06-2005 à 17:36:31  profilanswer
 

Faire gaffe au 3eme argument de setProperty (dont je me souviens plus la signification d'ailleurs) qui doit etre une chaine (nulle si pas utilisé)

n°1105915
masklinn
í dag viðrar vel til loftárása
Posté le 02-06-2005 à 17:40:16  profilanswer
 

D'ailleurs je viens de vérifier, setProperty n'est pas disponible dans MSIE, donc faut pas l'utiliser [:klem3i1]


Message édité par masklinn le 02-06-2005 à 17:41:15

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
mood
Publicité
Posté le 02-06-2005 à 17:40:16  profilanswer
 

n°1105977
Kiosquec
Posté le 02-06-2005 à 18:50:22  profilanswer
 

A titre d'illustration, svp, qui peut m'indiquer l'équivalent moderne de :
 
document.forms["mon_formulaire"].elements[mon_bouton_radio](numero_d_index).checked = false;
 
("mon_formulaire" est directement le nom du formulaire, alors que mon_bouton_radio est une variable qui contient le nom d'un groupe de boutons radios parmi d'autres.)
 
Cette instruction périmée fonctionne très bien sous IE6, mais apparemmment pas du tout sous Firefox.
D'autres chose ont changé ? J'ai un doute sur la boucle
 
for (i = debut; i < fin; i++) {
 
qui me fait un peu n'importe quoi sous Firefox. (Mais qui marche bien sous IE6, bien sûr).
 
Je sais, c'est du vieux Javascript, mais moi aussi je suis vieux. Le modernisme m'échappe un peu. ;)
 
PS : évidemment, il faut que cela fonctionne encore sous IE6.  

n°1105979
gatsusat
Posté le 02-06-2005 à 18:56:14  profilanswer
 

tu met un id sur chaque case à cocher :
ex :  
<input type="checkbox" id="cbox1">
<input type="checkbox" id="cbox2">
<input type="checkbox" id="cbox3">
 
et le code pour y acceder devient :  
document.getElementById('cbox' + numero_d_index).checked = false;  
 

n°1106451
angel92
Posté le 03-06-2005 à 08:48:40  profilanswer
 

putain ! que de problemes que de problemes !
Y a toujours un truc qui va pas niveau compatibilité !

n°1106669
angel92
Posté le 03-06-2005 à 10:56:07  profilanswer
 

je croi que j'ai du mal avec les css en effet !
 
et sui au passage de la souris je veux que le texte change de couleur , sachant que la balise font est identifiée par un id je met ca ?:
 
document.getElementById(id).style.font = 'color(white)';

n°1106670
masklinn
í dag viðrar vel til loftárása
Posté le 03-06-2005 à 10:56:53  profilanswer
 

non
 
document.getElementById(id).style.color = 'white';


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1106679
angel92
Posté le 03-06-2005 à 11:01:36  profilanswer
 

merci Masklinn !
T'es vraiment le plus rapide de l'ouest pour répondre !

n°1106722
Kiosquec
Posté le 03-06-2005 à 11:27:10  profilanswer
 

gatsusat a écrit :

tu met un id sur chaque case à cocher :
ex :  
<input type="checkbox" id="cbox1">
<input type="checkbox" id="cbox2">
<input type="checkbox" id="cbox3">
 
et le code pour y acceder devient :  
document.getElementById('cbox' + numero_d_index).checked = false;


 
Il ne s'agit pas de checkbox mais de boutons radios.
Quelque chose du genre :
 
<input type="radio" id="choix1" value="salade">
<input type="radio" id="choix1" value="tomate">
<input type="radio" id="choix1" value="radis">
 
<input type="radio" id="choix2" value="rouge">
<input type="radio" id="choix2" value="vert">
<input type="radio" id="choix2" value="bleu">
 
<input type="radio" id="choix3" value="1000">
<input type="radio" id="choix3" value="2000">
<input type="radio" id="choix3" value="3000">
 
etc.
 
(ou
<input type="radio" name="choix1" id="choix" value="salade">
<input type="radio" name="choix1" id="choix" value="tomate">
<input type="radio" name="choix1" id="choix" value="radis">
etc. ?)
 
Je ne peux donc pas écrire dans ma fonction
 
'choix1' + numero_d_index,
 
car je cherche
choix1(numero_d_index)
ou
choix2(numero_d_index)
ou
choix3(numero_d_index)
etc.
 
Ce qui fonctionne en partie : (choix = 'choix1', ou 'choix2' ou 'choix3', etc.)
document.getElementById(choix).checked = false;
Sauf que ça ne marche que pour les boutons d'index 0. Donc seul le premier bouton du groupe est désélectionné.
 
document.getElementById(choix[numero_d_index]).checked = false;
ne marche pas. Message : document.getElementById(choix[numero_d_index]) has no properties
 
document.getElementById(choix(numero_d_index)).checked = false;
ne marche pas. Message : choix is not a function
 
document.getElementById(choix).options[numero_d_index].checked = false;
ne marche pas. Message : document.getElementById(choix).options[numero_d_index] has no properties
 
document.getElementById(choix).options[numero_d_index].checked = false;
ne marche pas. Message : document.getElementById(choix).options is not a function
 
etc.
 
Pour l'instant, j'ai plus d'imagination que d'efficacité. :(


Message édité par Kiosquec le 03-06-2005 à 14:23:33
n°1106877
cerel
Posté le 03-06-2005 à 13:23:23  profilanswer
 

Un id doit etre unique dans tout le document (ou page si tu preferes).

n°1107145
Kiosquec
Posté le 03-06-2005 à 15:55:56  profilanswer
 

Merci. Je venais justement de le tester, et ça marche.
 
Objectif : classer diverses objets concurrents sans autoriser d'ex-aequos.
 
La solution à mon problème est donc :
 
<html>
<head>
<title>Classement</title>
<meta name="author" content="KiosqueC">
 
<script language="javascript"><!--
  function ma_fonction(numero_question_en_cours, index_reponse) {
    for (i = 1; i < 5; i++) {
      if (i != numero_question_en_cours) {
        bouton = "choix" + i + "_" + index_reponse;
     if (document.getElementById(bouton).checked) {
          document.getElementById(bouton).checked = false;
        }
      }
    }
  }
--></script>
</head>
 
<body>
<h1>Classement</h1>
<form name="classement" action="classement.html" method="post">
 
Classez par ordre de préférence : <br />
 
-1-----2------3-----4-------------<br />
<input type="radio" name="choix1" id="choix1_1" value="1" onClick=ma_fonction("1","1" )>
&nbsp;&nbsp;&nbsp;  
<input type="radio" name="choix1" id="choix1_2" value="2" onClick=ma_fonction("1","2" )>  
&nbsp;&nbsp;&nbsp;  
<input type="radio" name="choix1" id="choix1_3" value="3" onClick=ma_fonction("1","3" )>
&nbsp;&nbsp;&nbsp;  
<input type="radio" name="choix1" id="choix1_4" value="4" onClick=ma_fonction("1","4" )>
&nbsp;&nbsp;&nbsp;  
Le rouge <br />
 
<input type="radio" name="choix2" id="choix2_1" value="1" onClick=ma_fonction("2","1" )>  
&nbsp;&nbsp;&nbsp;  
<input type="radio" name="choix2" id="choix2_2" value="2" onClick=ma_fonction("2","2" )>  
&nbsp;&nbsp;&nbsp;  
<input type="radio" name="choix2" id="choix2_3" value="3" onClick=ma_fonction("2","3" )>  
&nbsp;&nbsp;&nbsp;  
<input type="radio" name="choix2" id="choix2_4" value="4" onClick=ma_fonction("2","4" )>
&nbsp;&nbsp;&nbsp;  
Le jaune <br />
 
<input type="radio" name="choix3" id="choix3_1" value="1" onClick=ma_fonction("3","1" )>  
&nbsp;&nbsp;&nbsp;  
<input type="radio" name="choix3" id="choix3_2" value="2" onClick=ma_fonction("3","2" )>  
&nbsp;&nbsp;&nbsp;  
<input type="radio" name="choix3" id="choix3_3" value="3" onClick=ma_fonction("3","3" )>  
&nbsp;&nbsp;&nbsp;  
<input type="radio" name="choix3" id="choix3_4" value="4" onClick=ma_fonction("3","4" )>
&nbsp;&nbsp;&nbsp;  
Le bleu <br />
 
<input type="radio" name="choix4" id="choix4_1" value="1" onClick=ma_fonction("4","1" )>  
&nbsp;&nbsp;&nbsp;  
<input type="radio" name="choix4" id="choix4_2" value="2" onClick=ma_fonction("4","2" )>  
&nbsp;&nbsp;&nbsp;  
<input type="radio" name="choix4" id="choix4_3" value="3" onClick=ma_fonction("4","3" )>  
&nbsp;&nbsp;&nbsp;  
<input type="radio" name="choix4" id="choix4_4" value="4" onClick=ma_fonction("4","4" )>
&nbsp;&nbsp;&nbsp;  
Le vert <br />
 
<input type="submit" value="Envoyer">
&nbsp;&nbsp;&nbsp;  
<input type="reset" value="Oups !">
 
</form>
 
</body>
</html>
 
Le paramètre name détermine les groupes de boutons. Il est commun à tout le groupe.
Le paramètre ID est unique pour chaque bouton.
 
Copiez le source et sauvez-le sous classement.html
Il fonctionne sous IE6 et Firefox.
 

n°1107273
plainsofpa​in
Pingouino's lover
Posté le 03-06-2005 à 16:42:14  profilanswer
 

Qu'est-ce que j'aimerai bien voir des gens comme ca plus souvent, il recopie le code à la fin. Il ne manquerai plus qu'il édite son premier post en mettant [RESOLU] devant son tire :D


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
n°1108072
Kiosquec
Posté le 04-06-2005 à 14:50:05  profilanswer
 

plainsofpain a écrit :

Qu'est-ce que j'aimerai bien voir des gens comme ca plus souvent, il recopie le code à la fin. Il ne manquerai plus qu'il édite son premier post en mettant [RESOLU] devant son tire :D


Sauf que la question initiale n'est pas de moi. Je n'ai fait que prendre le train en marche avec un problème apparenté. :sol:
Nota : mon code réel est beaucoup plus compliqué. J'ai simplifié pour mettre en évidence la solution. C'était la moindre des choses, non ?


Message édité par Kiosquec le 04-06-2005 à 14:55:20
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Compatibilité du Javascript sous IE6 et Mozilla !

 

Sujets relatifs
Bloquage javascript...stocker le résultat d'une fonction javascript dans une var php
[RESOLU] petit soucis de formulaire et javascriptjavascript div et scientillement sous firefox
erreur JavaScript dans firefoxOuverture de .php avec Javascript ...
insertion d'un fichier dans une page html avec javascriptjavascript et php
appeler une methode javascript d'une page principale depuis un popupEnvoyer un formulaire en javascript en post, c'est possible ?
Plus de sujets relatifs à : Compatibilité du Javascript sous IE6 et Mozilla !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR