11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je viens de me servir du code pour la création de la galerie photo proposée par votre site. Elle fonctionnait très bien jusqu'à ce que je l'intègre dans une nouvelle page web.

Est ce que le fait qu'il y ait d'autres scripts javascript dans cette page pose problème ?

Merci pour votre aide. Smiley smile
Bonjour,

Peut-être un problème d'écrasement de l'évènement window.onload?
Peut-on voir la page en ligne?
Modifié par Florent V. (21 Dec 2007 - 13:55)
Modérateur
Il y a de fortes chances, oui. Smiley ravi

La galerie photos se base sur un window.onload, ce qui fait que quelquesoit le script externe qu'on récupère, ça part en sucette.
Et si c'est le cas, ça peut se corriger avec l'utilisation, soit pour les deux scripts, soit pour le deuxième et les suivants, de la fonction suivante:

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

Et ensuite ça s'appelle comme ça:
addLoadEvent(premiereFonction);
addLoadEvent(deuxiemeFonction);


Tu pourrais même mettre toutes tes fonctions dans un même fichier, et faire:
// Ici on déclare la fonction addLoadEvent

// Ici on déclare les fonctions des «autres scripts»
// et si besoin on utilise addLoadEvent(maFonction);

// Ici on déclare les fonctions de la galerie d'images
// et on termine avec addLoadEvent(laFonctionQuiInitieMaGalerie);

Mais si ce sont des scripts complets et pas de petites fonctions, mieux vaut garder ça dans des fichiers séparés.


Mais bon, le problème est peut-être autre...