Adaptation code IE vers Netscape, Mozilla, Firefox

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
SB
Varan
Messages : 1095
Inscription : 05 mars 2004, 18:38

Message par SB »

<table width="530px" border="0" align="center" cellpadding="0" cellspacing="0">

<tr>
<td height="164px"><div align="center" ><font color="#000000" size="2" face="Arial, Helvetica, sans-serif">
<a href="indexFR.html" id="lien0"><img src="images/pays/france.jpg" name="img" border="0" alt=""></a><br><br>
Pour Entrer<br>
cliquez sur la touche "<span style="font-style:italic; font-weight:bold; text-decoration:underline">entrée</span>"
</font></div></td>
<td>&nbsp;</td>
<td><div align="center"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif">
<a href="indexEN.html" id="lien1"><img src="images/pays/Anglais.jpg" name="img" border="0" alt=""></a><br>
<br>
For Enter<br>
click the touch "<span style="font-style:italic; font-weight:bold; text-decoration:underline">entry</span>"
</font></div></td>
</tr>
</table>

<script type="text/javascript">
<!--
var lienval=new Array(
"images/pays/france2.jpg",
"images/pays/Anglais2.jpg"
); //========== table des images pour les liens valides

var lieninv=new Array(
"images/pays/france.jpg",
"images/pays/Anglais.jpg"
); //========== table des images pour les liens invalides

for (var n=0;n<2;n++)
{ document.img[n].src=lieninv[n]; } // initialisation des images

var adr=1;

function clavier(evt) { // frappe sur une touche
var whichkey = null;
if(evt){ // pas IE
whichkey = evt.which;
}
else{ // IE
whichkey = window.event.keyCode;
}
if (whichkey==13)
lien=eval('document.getElementById("lien' + adr + '").href');
eval('document.location.href=\'' + lien + '\'');
}

function suivant() // passer au lien suivant
{ document.img[adr].src=lieninv[adr];
adr++;
if (adr>=2) adr=0;
document.img[adr].src=lienval[adr];
setTimeout("suivant();",3000); }
suivant();
document.onkeypress=clavier;
//-->
</script>
J'ai remis la partie du code non javascript car j'ai du y apporter 2 modifs (name="lien" par id="lien0" et id="lien1")
PsyDk
Lézard à collerette
Messages : 317
Inscription : 23 sept. 2003, 09:41

Message par PsyDk »

Ah bah j'étais arrivé à la même solution :) En revanche il parait qu'il vaut mieux utiliser window.location qui est une variable pouvant être modifiée, document.location est censé être en lecture seule.

Code : Tout sélectionner

function clavier(evt)
{
	// frappe sur une touche
	var whichkey = null;
	if(evt)
	{
		// Standard Compliant
		whichkey = evt.which;
	}
	else
	{
		// Internet Explorer
		whichkey = window.event.keyCode;
	}
	
	if (whichkey == 13)
	{
		window.location = document.getElementById("lien" + adr).href;
	}
}
Le code de détection de la touche Entrée était correct, c'était le code qui agissait en fonction qui ne passait pas.

En résumé :
- utiliser des id au lieu de name ;
- nommer ces id « lien0 » et « lien1 » ;
- récupérer les éléments ayant ces identifiants à l'aide de document.getElementById ;
- utiliser le href de ces éléments (il s'agit de « a ») ;
- donner la nouvelle URL via window.location.

Oh, et utiliser la console de debug Javascript, c'est un outil précieux :)
rallierst
Arias
Messages : 6
Inscription : 14 déc. 2004, 12:41

Message par rallierst »

:D C'est parfais, merci à tous pour l'aide que vous m'avez apporté. :? Je trouve vraiment dommage, c'est problème d'incompatibilité entre les navigateurs. Le JavaScript est du JavaScript, pourquoi ne pas avoir tous la même synthaxe.

Bref, cela faisait plusieurs semaines que je galérai avec ce code, et gràce à ce forum, le miracle c'est produit.

Merci à tous. :wink:
Parce que la différence ne doit pas être un frein à la créativité et au développement intellectuel.
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Ça il faut le demander à Microsoft :|
Bobe
Iguane
Messages : 742
Inscription : 28 juil. 2003, 21:29

Message par Bobe »

calimo a écrit :Ça il faut le demander à Microsoft :|
Ne pas oublier quand même les autres groupes de développeurs (Opera, Mozilla...) qui implémentent parfois comme des gorets ou même uniquement une partie d'une interface.
« La vie d’un geek est un combat perpétuel contre l’imperfection »
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités