Javascript et compatibilité
Fermé
Smoking bird
Messages postés
870
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2011
-
16 juil. 2009 à 01:49
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 - 18 juil. 2009 à 02:25
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 - 18 juil. 2009 à 02:25
A voir également:
- Javascript et compatibilité
- Compatibilite windows 11 - Guide
- Telecharger javascript - Télécharger - Langages
- Macos big sur compatibilité - Guide
- Pack compatibilité office 2003 - Télécharger - Bureautique
- Node.js javascript runtime virus ✓ - Forum Virus
12 réponses
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
922
16 juil. 2009 à 10:16
16 juil. 2009 à 10:16
salut l'oiseau !
est-ce normal que "on" soit initialisé à " " et pas avec une chaîne vide ?
est-ce que le if ne concerne bien que "document.getElementById(on).style.display='none';" et pas l'instruction suivante ?
sinon, pas évident…
normalement FF connait tout ça !
regarde du côté du HTML.
comment appelles-tu la fonction ?
si c'est sur un évènement, essaie avec un autre et bien sûr en premier vérifie que ton doc soit valide.
est-ce normal que "on" soit initialisé à " " et pas avec une chaîne vide ?
est-ce que le if ne concerne bien que "document.getElementById(on).style.display='none';" et pas l'instruction suivante ?
sinon, pas évident…
normalement FF connait tout ça !
regarde du côté du HTML.
comment appelles-tu la fonction ?
si c'est sur un évènement, essaie avec un autre et bien sûr en premier vérifie que ton doc soit valide.
Smoking bird
Messages postés
870
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2011
58
16 juil. 2009 à 12:07
16 juil. 2009 à 12:07
Salut toi :D la forme?^^
Pour le on, oui^^, en fait au cours de mes tests j'ai initialisé cette variable de cette façon parce que ça m'arrangeait bien plus que de le faire 'à l'ancienne'.
Pour le if, j'ai tenté aussi avec des accolades, ça n'y change rien^^
Et c'est vrai qu'il me semble bien aussi que FF connaît tout ça :D. En fait sous Opera ça fonctionne au premier appel sur chacune des listes, mais après ça ne fait plus rien du tout.
Sinon, mon doc est valide^^ d'où mon incompréhension. Je pense pas que l'évènement soit responsable, mais sait on jamais, je fais un appel sur un onclick très standard:
Autre chose: en fait ma fonction est plus grande que ça, mais le reste n'est pas supposé interférer. Le reste de la fonction marche aussi au premier appel sur chaque liste, mais firefox me relève une erreur et IE ne me l'exécute qu'à moitié^^ la voici en entier:
Pour le on, oui^^, en fait au cours de mes tests j'ai initialisé cette variable de cette façon parce que ça m'arrangeait bien plus que de le faire 'à l'ancienne'.
Pour le if, j'ai tenté aussi avec des accolades, ça n'y change rien^^
Et c'est vrai qu'il me semble bien aussi que FF connaît tout ça :D. En fait sous Opera ça fonctionne au premier appel sur chacune des listes, mais après ça ne fait plus rien du tout.
Sinon, mon doc est valide^^ d'où mon incompréhension. Je pense pas que l'évènement soit responsable, mais sait on jamais, je fais un appel sur un onclick très standard:
<a onclick=\"developp('c$ref','298','216')\" href='#'>$nom</a>. L'utilisation du lien de cette façon peut elle poser problème?
Autre chose: en fait ma fonction est plus grande que ça, mais le reste n'est pas supposé interférer. Le reste de la fonction marche aussi au premier appel sur chaque liste, mais firefox me relève une erreur et IE ne me l'exécute qu'à moitié^^ la voici en entier:
var on=' ';
function developp(ider,maxW,maxH){
var id=document.getElementById(ider);
if(on.length>=10){
document.getElementById(on).style.display='none';
}
var sec=1;
var frame=24;
var vitesse=(sec*frame)/100;
id.style.border='1px solid #ffcc00';
var delay=setInterval( function() {
if( id.offsetWidth<=maxW ) var nextW=parseInt(id.offsetWidth)+20+'px';
if( id.offsetHeight<=maxH ) var nextH=parseInt(id.offsetHeight)+20+'px';
if( id.offsetWidth<=maxW ) id.style.width=nextW;
if( id.offsetHeight<=maxH ) id.style.height=nextH;
}, vitesse);
setTimeout(function(){
for(var i=0;i<=id.childNodes.length;i++){
id.getElementsByTagName('li')[i].firstChild.style.display='block';
id.getElementsByTagName('li')[i].style.border='1px solid #373737';
}
},800);
on=ider;
}
Smoking bird
Messages postés
870
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2011
58
16 juil. 2009 à 17:45
16 juil. 2009 à 17:45
up
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
922
16 juil. 2009 à 22:01
16 juil. 2009 à 22:01
firefox me relève une erreur
ah ba faut l'dire !
en Javascript, 1 erreur = fin de l'exécution du code, c'est là qu'il faut chercher !
c'est quoi le message ?
ah ba faut l'dire !
en Javascript, 1 erreur = fin de l'exécution du code, c'est là qu'il faut chercher !
c'est quoi le message ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Smoking bird
Messages postés
870
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2011
58
16 juil. 2009 à 23:41
16 juil. 2009 à 23:41
c'est ça:
pas cool hein?
id.getElementsByTagName("li")[i] is undefined [Break on this error] id.getElementsByTagName('li')[i].firstChild.style.display='block';
pas cool hein?
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
922
17 juil. 2009 à 09:46
17 juil. 2009 à 09:46
salut,
ben si c'est cool !
c'est ta variable i qui doit être vide ou delà du nombre de <li>.
en plus, il te dit même quoi faire !
"Break on this error"
ben si c'est cool !
c'est ta variable i qui doit être vide ou delà du nombre de <li>.
en plus, il te dit même quoi faire !
"Break on this error"
Smoking bird
Messages postés
870
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2011
58
17 juil. 2009 à 15:50
17 juil. 2009 à 15:50
Ptdr t'as raison Dalida :D y'avait bien un problème: l'utilisation du childNodes était complètement erronnée, elle renvoi tous les noeuds, alors que seuls les li m'intéressent^^. On a fait pire comme erreur pour une première utilisation :).
Ceci dit, ça me renvoi encore une erreur :D sur cette portion de code:
la ligne incriminée est en gras^^ voici le retour:
id.getElementsByTagName("li")[i] is undefined
Ceci dit, ça me renvoi encore une erreur :D sur cette portion de code:
for(var i=0;i<=id.getElementsByTagName('li').length;i++){ id.getElementsByTagName('li')[i].firstChild.style.display='block'; id.getElementsByTagName('li')[i].style.border='1px solid #373737'; }
la ligne incriminée est en gras^^ voici le retour:
id.getElementsByTagName("li")[i] is undefined
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
922
17 juil. 2009 à 17:37
17 juil. 2009 à 17:37
il serait plus logique de stocker le résultat dans un tableau plutôt que d'appeler la méthode à chaque passage.
sinon regarde ta deuxième instruction, elle n'est pas identique à la première, tu n'utilises pas le FirstChild.
sinon regarde ta deuxième instruction, elle n'est pas identique à la première, tu n'utilises pas le FirstChild.
Smoking bird
Messages postés
870
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2011
58
17 juil. 2009 à 17:40
17 juil. 2009 à 17:40
"Il serait plus logique de stocker le résultat dans un tableau plutôt que d'appeler la méthode à chaque passage."
comment ça?
J'm'en suis rendu compte pour la seconde propriété, voici vers où je m'oriente désormais:
ça ne marche pas franchement mieux:s comme si l'utilisation du tableau avec i merdait grave:s...
comment ça?
J'm'en suis rendu compte pour la seconde propriété, voici vers où je m'oriente désormais:
var style=id.getElementsByTagName('li')[i].firstChild.style; style.display='block'; style.borderWidth='1px'; style.borderStyle='solid'; style.borderColor='#373737';
ça ne marche pas franchement mieux:s comme si l'utilisation du tableau avec i merdait grave:s...
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
922
17 juil. 2009 à 18:00
17 juil. 2009 à 18:00
var items = id.getElementsByTagName('li') for(var i=0;i<items.length;i++) { if(items[i].firstChild) { items[i].firstChild.style.display='block'; items[i].firstChild.style.border='1px solid #373737'; } }
Smoking bird
Messages postés
870
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2011
58
17 juil. 2009 à 19:07
17 juil. 2009 à 19:07
j'ai toujours su que t'étais un artiste :D (au delà de la chanteuse^^;) )
ça marche impecc, j'ai plus d'erreur^^
Ceci dit, pour le reste de la fonction, le problème demeure :s.
Voici sa forme actuelle:
A l'appel, elle développe une liste et affiche les images qui sont dedans au bout d'un léger délai.
Aux appels suivants, elle est supposée récupérer la variable 'on' qui lui dit quelle est la dernière liste ouverte, pour pouvoir la fermer et ouvrir la liste concernée.
Ca fonctionne sous Opera, sous Firefox ça refuse de fermer la liste précédente, sous IE ça ouvre les listes et affiche les images, mais ça ne développe pas la liste pour qu'elle atteigne sa taille prédéfinie, et ça ne se répète sous aucun des navigateurs (mais ça il semblerait que ce soit parce que je n'opère pas de clearInterval()...)
Prêt pour de nouveaux défis? :D
ça marche impecc, j'ai plus d'erreur^^
Ceci dit, pour le reste de la fonction, le problème demeure :s.
Voici sa forme actuelle:
var on=' '; function developp(ider,maxW,maxH){ var id=document.getElementById(ider); if(on.length>=10){ document.getElementById(on).style.display='none'; } var sec=1; var frame=24; var vitesse=(sec*frame)/100; id.style.border='1px solid #ffcc00'; var delay=setInterval( function(){ if( id.offsetWidth<=maxW ){ var nextW=parseInt(id.offsetWidth)+20+'px'; id.style.width=nextW; } if( id.offsetHeight<=maxH ){ var nextH=parseInt(id.offsetHeight)+20+'px'; id.style.height=nextH; } }, vitesse); var img=id.getElementsByTagName('li'); setTimeout(function(){ for(var i=0;i<=img.length;i++){ if(img[i]){ style=img[i].firstChild.style; style.display='block'; style.border='1px solid #373737'; } } },800); on=ider; }
A l'appel, elle développe une liste et affiche les images qui sont dedans au bout d'un léger délai.
Aux appels suivants, elle est supposée récupérer la variable 'on' qui lui dit quelle est la dernière liste ouverte, pour pouvoir la fermer et ouvrir la liste concernée.
Ca fonctionne sous Opera, sous Firefox ça refuse de fermer la liste précédente, sous IE ça ouvre les listes et affiche les images, mais ça ne développe pas la liste pour qu'elle atteigne sa taille prédéfinie, et ça ne se répète sous aucun des navigateurs (mais ça il semblerait que ce soit parce que je n'opère pas de clearInterval()...)
Prêt pour de nouveaux défis? :D
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
922
17 juil. 2009 à 19:16
17 juil. 2009 à 19:16
et tu te mettrais pas aux frameworks ?…
+ http://script.aculo.us/
+ https://jquery.com/
+ https://mootools.net/
etc.
+ http://script.aculo.us/
+ https://jquery.com/
+ https://mootools.net/
etc.
Smoking bird
Messages postés
870
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2011
58
18 juil. 2009 à 02:25
18 juil. 2009 à 02:25
mdr :D pas encore, si je ne comprends pas je n'apprends pas, et je ne m'y connais pas assez en javascript pour disséquer ces frameworks, mais merci de la suggestion et des liens^^ je les mets de côté^^