11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

comment cela dépasse ma compétence je viens pour vous demander un peu d'aide histoire de rendre service à quelqu'un, le dev. l'ayant abandonnée.

J'ai 2 erreurs js sous IE et donc un code js qui marche pas pour de l'ancrage sous IE9 :

switch(navigator.appName) {
				case 'Microsoft Internet Explorer':
					var myregex = /MSIE 7\.0/i;
					var myArray = navigator.appVersion.match(myregex);
					if(myArray.length > 0) {
						document.documentElement.scrollTop = positionTop;
					} else {
						document.body.scrollTop = positionTop;
					}
				break;
				default:
					self.body.animate({
    				scrollTop : positionTop
		    			},
		    			1000,
		    			"easeOutQuart"
		    		);
			}


Message d'erreur : le fichier scripts.js, length a une valeur nulle ou n'est pas un objet

Autre erreur à l'index qui n'influe pas le fonctionnement mais bon tant qu'on y est, c'est pour un carousel :
$('.cycle-introduction').jcarousel({
			requeueOnImageNotLoaded: true
        });


La console m'indique que la propriété/méthode jcarousel n'est pas reconnue. alors qu'il y a un fichier jcarousel rattaché. Erreur répétée sous FF, Chrome. Alors peut-être est-ce le fait que le script de lancement charge dans la balise head et que le script jcarousel est lui avant la fin du body.

Merci pour vos idées Smiley smile
Salut,

ta première erreur est due au fait que sous une version d'IE différente de 7 myArray est null, du coup tu ne peux pas retourner sa longueur.

Change la condition de ton if de la sorte :

if(myArray != numm) {
   document.documentElement.scrollTop = positionTop;
} else {
   document.body.scrollTop = positionTop;
}


Pour ta deuxième erreur, comme tu le suggère, essayes d'appeler jcarrousel.js avant ce script là.

Ju
Modifié par JulienFouquet (08 Jan 2013 - 19:10)
Merci pour ta réponse, l'erreur n'est plus et l'ancrage fonctionne en partie, bizarrement le script d'animation fluide ne veut pas fonctionner...

Pour l'autre erreur, j'ai bien changé mais toujours la même erreur sur la console.