Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/02/2011, 14h08   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 18
Points : 1
Points : 1
Par défaut Script qui ne se lance plus?

Bonjour,
Voilà j'ai un petit script qui s'initialise au chargement de la page, mais étonnament il n'est plus éxécuté, preuve en est le alert que je rajoute en tout début qui n'est pas affiché sur ma page.

Quelle peut-être la cause?

Si ça peut aider voici mon code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
alert('pam');
function init_abb() {
 
	var btn = document.getElementById('btn_gravure');
	btn.onclick = gravure;
	var c_o = false;
	var block_co;
 
	var num_dl_cust;
	if(document.getElementsByTagName('dl')[0]){ //nb d'enfants dt => les custom en ont 5
		if(document.getElementsByTagName('dl')[0].getElementsByTagName('dt').length == 5){
			num_dl_cust = 0; 
		}else{ num_dl_cust = -1; }
	}
	if(document.getElementsByTagName('dl')[1]){ //nb d'enfants dt => les custom en ont 5
		if(document.getElementsByTagName('dl')[1].getElementsByTagName('dt').length == 5){
			num_dl_cust = 1; 
		}else{ num_dl_cust = -1; }
	}
	if(!(document.getElementsByTagName('dl')[1]) && !(document.getElementsByTagName('dl')[0])){
		num_dl_cust = -1;
	}
 
	if(num_dl_cust!=-1){
		block_co = document.getElementsByTagName('dl')[num_dl_cust];
		block_co.style.display='none'; // chacher le bloc entier
		c_o = true;
	}
 
	if(var1!='' && var2!='' && var3!='' && var4!='' && var5!='') {
 
		document.getElementById('options_'+var1).parentNode.style.display='none'; // cacher les "aucun"
		document.getElementById('options_'+var2).parentNode.style.display='none'; // *
 
		var bloc_typo = document.getElementById('ab_select_'+var2); // typo
		bloc_typo.style.display='none';
 
		var bloc_dispo = document.getElementById('ab_text_'+var3); // dispo
		bloc_dispo.style.display='none';
 
		var bloc_prenom = document.getElementById('ab_text_'+var4); // prenom
		bloc_prenom.style.display='none';
 
		var bloc_date = document.getElementById('ab_date_'+var5); // date
		bloc_date.style.display='none';
 
		var bloc_datep = document.getElementById('ab_date_'+var6); // date payante
		bloc_datep.style.display='none';
 
		var grav1 = document.getElementById('options_'+var1+'_2');
		var grav2 = document.getElementById('options_'+var1+'_3');
		grav1.onfocus = affich_typo;
		grav2.onfocus = affich_typo;
 
		var typo1 = document.getElementById('options_'+var2+'_2');
		var typo2 = document.getElementById('options_'+var2+'_3');
		var typo3 = document.getElementById('options_'+var2+'_4');
		typo1.onfocus = affich_dispo;
		typo2.onfocus = affich_dispo;
		typo3.onfocus = affich_dispo;
 
		var dispo = document.getElementById('options_'+var3+'_text');
	}
 
 
 
	// attraper les dropdowns -- attribuer les events sur chaque
	var bbb = new Array();
	bbb = $$('select.super-attribute-select');
	for(var y=0; y<bbb.length; y++){
		bbb[y].onchange = maj_options_conf;
	}
 
	// Initialisation des select : cocher autom. les n/a, en s'arretant au premier choix a faire
	var cpt = 0;
	do{
		for(var k=0; k<bbb[cpt].options.length;k++){
			if((bbb[cpt].options[k].text=='n/a') && (bbb[cpt].options.length<3)){
				bbb[cpt].options[k].selected=true;
				fireEvent(bbb[cpt], 'change');
			}
		}
		cpt = cpt + 1;
	}while((typeof(bbb[cpt])!="undefined") && bbb[cpt].options.length<3));	
 
	// fonction de maj
	function maj_options_conf(){
		var vv = 0;
		while(bbb[vv].options.length>1 && typeof(bbb[vv])!="undefined"){
			vv = vv + 1;
		} // on a vv le num correspondant au premier select a une seule option (pas encore rempli quoi)
		if(bbb[vv-1].options.length<3 && bbb[vv-1].options[1].text=='n/a'){
			bbb[vv-1].options[1].selected=true;
			fireEvent(bbb[vv-1], 'change');
		}
	}
 
 
 
}
 
window.onload = init_abb;
 
 
function affich_typo(){
	document.getElementById('ab_select_'+var2).style.display='block';
}
 
function affich_dispo(){
	document.getElementById('ab_text_'+var3).style.display='block';
}
 
function affich_prenom(){
	document.getElementById('ab_text_'+var4).style.display='block';
}
 
function affich_date(){
	document.getElementById('ab_date_'+var5).style.display='block';
}
 
function gravure(){
	if(block_co.style.display=='none'){ // on va l'afficher
		block_co.style.display='block';
	}
	else{ // on va le cacher
		block_co.style.display='none';
 
		document.getElementById('options_'+var1).checked='true'; // remise a zero des options
		document.getElementById('options_'+var2).checked='true'; //
		document.getElementById('options_'+var3+'_text').value=''; //
		document.getElementById('options_'+var4+'_text').value=''; //
		document.getElementById('options_'+var5+'_date').value=''; //
		document.getElementById('dispo_rien').checked='true'; 
 
 
		document.getElementById('ab_select_'+var2).style.display='none';//on cache les div qui ont été dévoilées
		document.getElementById('ab_text_'+var3).style.display='none';
		document.getElementById('ab_text_'+var4).style.display='none';
		document.getElementById('ab_date_'+var5).style.display='none';
		opConfig.reloadPrice();
	}
}
 
function radio_dispo(nom){
	pr=0; da=0;
	document.getElementById('options_'+var3+'_text').value = ''+nom+'';
	pr=(nom.indexOf("Prénom")!=-1);
	da=(nom.indexOf("Date")!=-1);
	if(pr && da) { affich_prenom(); affich_date(); }
	else if (pr && !da) { 
		affich_prenom();
		document.getElementById('ab_date_'+var5).style.display='none';
		document.getElementById('options_'+var5+'_date').value='';
	}
	else if (!pr && da) { 
		affich_date();
		document.getElementById('ab_text_'+var4).style.display='none';
		document.getElementById('options_'+var4+'_text').value='';
	 }
 
 
}

Les dernières choses que j'ai modifié sont mon "Initialisation" et la "fonction de maj" mais je ne vois pas d'erreurs =/
jgrmstr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 14h16   #2
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 073
Points : 4 073
Si l'alert de départ n'est pas exécuté, pas la peine de lire la suite ^^

Montre-nous plutot comment le script est inclus à la page
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 14h23   #3
Invité de passage
 
Inscription : janvier 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 18
Points : 1
Points : 1
Citation:
Envoyé par RomainVALERI Voir le message
Si l'alert de départ n'est pas exécuté, pas la peine de lire la suite ^^

Montre-nous plutot comment le script est inclus à la page
Le fichier est compacté avec d'autres fichiers JS et le tout inclus normalement sur les pages (je travaille sur une boutique Magento) mais là n'est pas le problème car il y a encore quelques dizaines de modifications ça "fonctionnait" encore (ça tournait mais c'était idiot).

Donc je suis pas un fana du JS, mais visiblement tout un fichier est passé à la trappe si il y a une ligne fausse? Parce que je me relis depuis tout à l'heure et je ne vois pas l aou les erreurs probables =/
jgrmstr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 14h23   #4
Membre Expert
 
Avatar de Loceka
 
Tlouye Ci
Inscription : mars 2004
Messages : 1 450
Détails du profil
Informations personnelles :
Nom : Tlouye Ci

Informations forums :
Inscription : mars 2004
Messages : 1 450
Points : 2 149
Points : 2 149
généralement quand un alert (ou un bout de code) n'est pas affiché alors qu'il se trouve avant un code pouvant planter c'est qu'il y'a une erreur syntaxique dans le code (mot clef inexistant, mauvaise affectation, ";" manquant, ...).

Essaye de virer un $ ici :
Code :
bbb = $$('select.super-attribute-select');
EDIT :
Tu as aussi une parenthèse en trop ici :
Code :
	}while((typeof(bbb[cpt])!="undefined") && bbb[cpt].options.length<3));
Loceka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 14h46   #5
Invité de passage
 
Inscription : janvier 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 18
Points : 1
Points : 1
Citation:
Envoyé par Loceka Voir le message
généralement quand un alert (ou un bout de code) n'est pas affiché alors qu'il se trouve avant un code pouvant planter c'est qu'il y'a une erreur syntaxique dans le code (mot clef inexistant, mauvaise affectation, ";" manquant, ...).

Essaye de virer un $ ici :
Code :
bbb = $$('select.super-attribute-select');
EDIT :
Tu as aussi une parenthèse en trop ici :
Code :
	}while((typeof(bbb[cpt])!="undefined") && bbb[cpt].options.length<3));
Merci à toi, depuis tout à l'heure je m'usais les yeux pour une bête parenthèse... Maintenant c'est bon tout roule

Sinon tant qu'on parle de ça, j'ai aussi eu plus tôt dans la journée des erreurs qui visiblement ne coupaient le déroulement du script qu'en chemin, pas totalement comme ici.
Alors je ne sais pas ça dépend de quoi, si c'est une erreur syntaxique peut-être de son importance? J'ai aucune idée de comment il est décidé de tout arrêter ou de stopper là où il y a l'erreur.
jgrmstr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 14h57   #6
Membre Expert
 
Avatar de Loceka
 
Tlouye Ci
Inscription : mars 2004
Messages : 1 450
Détails du profil
Informations personnelles :
Nom : Tlouye Ci

Informations forums :
Inscription : mars 2004
Messages : 1 450
Points : 2 149
Points : 2 149
Si ton script fonctionne jusqu'à un certain point, c'est qu'à ce point précis tu lui demande de faire quelque chose qu'il lui est impossible de faire.
Typiquement tu fais appel à une variable qui n'existe pas ou qui n'est pas renseignée exemple :

Code :
1
2
if (maVar == 1) // maVar non déclarée
document.getElementsByName("a").value = "valeur" // .value n'existe pas sur un tableau
En Java ces erreurs donneraient lieu à des NullPointerException.

Les erreurs de syntaxe font planter le script à la "compilation" donc ton script n'est pas exécuté.
Les erreurs d'accès aux variables font planter le script à l'exécution donc ton script est exécuté jusqu'au moment où il y'a une erreur.

Bon, c'est peut-être pas exaustif comme cause d'erreur mais je ne me rappelle pas d'autre cas. ^_^
Loceka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 15h50   #7
Invité de passage
 
Inscription : janvier 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 18
Points : 1
Points : 1
Citation:
Envoyé par Loceka Voir le message
Si ton script fonctionne jusqu'à un certain point, c'est qu'à ce point précis tu lui demande de faire quelque chose qu'il lui est impossible de faire.
Typiquement tu fais appel à une variable qui n'existe pas ou qui n'est pas renseignée exemple :

Code :
1
2
if (maVar == 1) // maVar non déclarée
document.getElementsByName("a").value = "valeur" // .value n'existe pas sur un tableau
En Java ces erreurs donneraient lieu à des NullPointerException.

Les erreurs de syntaxe font planter le script à la "compilation" donc ton script n'est pas exécuté.
Les erreurs d'accès aux variables font planter le script à l'exécution donc ton script est exécuté jusqu'au moment où il y'a une erreur.

Bon, c'est peut-être pas exaustif comme cause d'erreur mais je ne me rappelle pas d'autre cas. ^_^
Mh d'accord merci d'avoir éclairé ma lanterne.
Je te dis au prochain bug :p
jgrmstr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 15h50   #8
Membre expérimenté
 
Duke Jikel
Inscription : mai 2010
Messages : 339
Détails du profil
Informations personnelles :
Nom : Duke Jikel

Informations forums :
Inscription : mai 2010
Messages : 339
Points : 546
Points : 546
Citation:
Envoyé par Loceka Voir le message
Si ton script fonctionne jusqu'à un certain point, c'est qu'à ce point précis tu lui demande de faire quelque chose qu'il lui est impossible de faire.
Typiquement tu fais appel à une variable qui n'existe pas ou qui n'est pas renseignée exemple :

Code :
1
2
if (maVar == 1) // maVar non déclarée
document.getElementsByName("a").value = "valeur" // .value n'existe pas sur un tableau
En Java ces erreurs donneraient lieu à des NullPointerException.

Les erreurs de syntaxe font planter le script à la "compilation" donc ton script n'est pas exécuté.
Les erreurs d'accès aux variables font planter le script à l'exécution donc ton script est exécuté jusqu'au moment où il y'a une erreur.

Bon, c'est peut-être pas exaustif comme cause d'erreur mais je ne me rappelle pas d'autre cas. ^_^
S'il utilisait une vrai console JS il verrait tout de suite ses erreurs :o
dukej est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 15h57   #9
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 073
Points : 4 073
Citation:
Envoyé par dukej Voir le message
S'il utilisait une vrai console JS il verrait tout de suite ses erreurs :o
+1 ^^

C'est ça qui m'a mis dedans aussi j'ai (bêtement) supposé que
Citation:
Envoyé par jgrmstr
Les dernières choses que j'ai modifié sont mon "Initialisation" et la "fonction de maj" mais je ne vois pas d'erreurs =/
...signifiait "il n'y a pas d'erreurs JS à l'exécution"

alors que si
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h59.


 
 
 
 
Partenaires

Hébergement Web