11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'aimerais savoir comment résoudre l'erreur sous IE qui empêche les images de s'intervertir.
Par ailleurs quelle est l'alternative à
<body onLoad="preloadImages();">

afin de rendre la page XHTML valide

Merci
Modifié par boudouba (27 Jan 2008 - 11:12)
Hello,

boudouba a écrit :
J'aimerais savoir comment résoudre l'erreur sous IE qui empêche les images de s'intervertir.


Peut-tu nous en dire plus sur ton problème? là je ne vois pas vraiment de quoi il s'agit.


a écrit :
Par ailleurs quelle est l'alternative à
<body onLoad="preloadImages();">

afin de rendre la page XHTML valide


Essaie de plutot mettre dans ton code javascript, c'est mieux :
body.onload = preloadImages;
Tymlis a écrit :
Essaie de plutot mettre dans ton code javascript, c'est mieux :
body.onload = preloadImages;
Euh... ce ne serait pas plutôt :
window.onload = preloadImages;
Smiley langue
Bha...

Techniquement, je réponds à la question posée, à savoir passer les scripts inline vers des déclarations d'events, mais en pratique c'est vrai que window.onload est plus approprié

*va se faire fouetter, ça fait deux fois qu'on me corrige sur ce window.onload* Smiley biggol
Tymlis a écrit :
Hello,

Peut-tu nous en dire plus sur ton problème? là je ne vois pas vraiment de quoi il s'agit.



Et bien sous firefox les images de menu changent quand on passe la souris dessus et pas sous IE. Il me met qu'il y a une erreur ligne 15 : document à la valeur null ou n'est pas un objet.
Sinon ça fonctionne pour le onload... merci
Modifié par boudouba (19 Oct 2007 - 19:31)
bonjour,
document[changeImages.arguments[i ]].src
à remplacer par
document.images[i ].src
mais utiliser la méthode des portes coulissantes en CSS avec des images un peu plus légères serai plus accessible Smiley cligne ,
je n'ai pas vu quel ligne changer :


function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function changeImagesArray(array) {
	if (document.images && (preloadFlag == true)) {
		for (var i=0; i<array.length; i+=2) {
			document[array[i]].src = array[i+1];
		}
	}
}

function changeImages() {
	changeImagesArray(changeImages.arguments);
}

function toggleImages() {
	for (var i=0; i<toggleImages.arguments.length; i+=2) {
		if (selected == toggleImages.arguments[i])      changeImagesArray(toggleImages.arguments[i+1]);
	}
}

var selected = '';
var preloadFlag = false;
function preloadImages() {
	if (document.images) {
		preface_over = newImage("images/preface-over.gif");
		biographie_over = newImage("images/biographie-over.gif");
		galerie_over = newImage("images/galerie-over.gif");
		jupiter_over = newImage("images/jupiter-over.gif");
		livre_over = newImage("images/livre-over.gif");
		contact_over = newImage("images/contact-over.gif");
		preloadFlag = true;
	}
}


Ben une fois j'ai utilisé les portes coulissante et on m'a dit que ce n'était pas bon pour un certain type de personne.
Pour la légéreté des images, j'ai essayé mais le background était moche...[/i][/i]
bonsoir,
boudouba a écrit :
je n'ai pas vu quel ligne changer :


Sur IE, la page test que tu cites, donne l'erreur :"'document(...)' a la valeur null ou n'est pas un objet", ligne 14 de script.js, ce qui ne correspond pas au bout de code que tu vient de montrer. Mais n'importe comment, la réponse que je t'ai donnée n'est pas bonne non plus, je m'en excuse et n'en ai pas d'autre, faute de temps.