Une librairie DHTML qui en plus de vous simplifier la programmation vous assurera une compatibilité avec IE, Netscape, Mozilla, Opera. Indispensable à tout programmeur qui ne veut pas voir son site s'afficher seulement sur IE.
Source / Exemple :
//Iwaweb Dynamic Library V1.2
//Copyright © 2000-2003, Iwaweb
//La modification, la rediffusion de ce script est strictement interdite, seule l'utilisation est autorisée
//Pour connaître les navigateurs compatibles avec IDL consultez la liste de compatiblité
//pour utiliser cette librairie insérez simplement cette ligne <script language="javascript" src="idl.js"></script>
//détecte le navigateur utilisé
ie=navigator.userAgent.toLowerCase().indexOf("msie");
gecko=navigator.userAgent.toLowerCase().indexOf("gecko");
opera=navigator.userAgent.toLowerCase().indexOf("opera");
if(ie>0 && opera<0)
version=parseFloat(navigator.userAgent.substring(ie+5,ie+8));
if(opera>0)
version=parseFloat(navigator.userAgent.substring(opera+6,opera+9));
if(ie>0 && version<5 && opera<0)
alert("Attention, vous disposez d'une version d'Internet Explorer antérieure à la version 5.0. Risque d'erreur important !");
if(opera>0 && version<7)
alert("Attention, vous disposez d'une version d'Opera antérieure à la version 7.0. Risque d'erreur important !");
if(opera<0 && gecko<0 && ie<0)
alert("Attention, votre navigateur n'est pas reconnu par IDL. Risque d'erreur important !");
function creercalque(nom,largeur,hauteur,posix,posiy,couleur,paramsup,contenu,visibilite,zindex){
//nom,couleur,contenu et paramsup sont des chaines de caractère; largeur,hauteur,posix,posiy,zindex sont des entiers
//Action: crée un calque
document.write("<div id="+nom+" style='position:absolute;height:"+hauteur+"px;width:"+largeur+"px;left:"+posix+"px;top:"+posiy+"px;background-color:"+couleur+";visibility:"+visibilite+";z-index:"+zindex+"' "+paramsup+">"+contenu+"</div>");
}
function couleurcalque(nom,couleur){
//nom et couleur sont des chaînes
//Action: modifie la couleur du calque
document.getElementById(nom).style.backgroundColor=couleur;
}
function contenucalque(nom,contenu){
//nom et contenu sont des chaînes
//Action: modifie le contenu du calque
document.getElementById(nom).innerHTML=contenu;
}
function lire_contenucalque(nom){
//nom est une chaîne
//Action: retourne dans une chaîne le contenu du calque
return document.getElementById(nom).innerHTML;
}
function visibilitecalque(nom,visi){
//nom est une chaîne, visi est une chaîne acceptant 2 valeurs "hidden" ou "visible"
//Action: masque ou affiche le calque
document.getElementById(nom).style.visibility=visi;
}
function indiquervisibilite(nom){
//nom est une chaîne
//Action: retourne une variable qui vaut 1 si le calque est visible, 0 dans le cas contraire
var visi=0;
if(document.getElementById(nom).style.visibility=="visible")
{
visi=1;
}
return visi;
}
function lire_largeurfenetre(){
//Action: retourne la largeur de la fenetre en pixels
//Attention le script qui emploie cette fonction doit être situé entre les balises <body> et </body>
if(gecko>0)
var LargeurFenetre=self.innerWidth;
else
var LargeurFenetre=document.body.clientWidth;
return LargeurFenetre;
}
function lire_hauteurfenetre(){
//Action: retourne la hauteur de la fenetre en pixels
//Attention le script qui emploie cette fonction doit être situé entre les balises <body> et </body>
if(gecko>0)
var HauteurFenetre=self.innerHeight;
else
var HauteurFenetre=document.body.clientHeight;
return HauteurFenetre;
}
function positioncalque_x(nom,distance){
//la variable distance(entier) indique la distance du calque en pixel par rapport au bord gauche de votre fenêtre
//nom est une chaîne
//Action: replace le calque
document.getElementById(nom).style.left=distance;
}
function positioncalque_y(nom,distance){
//la variable distance(entier) indique la distance du calque en pixel par rapport au bord supérieur de votre fenêtre
//nom est une chaîne
//Action: replace le calque
document.getElementById(nom).style.top=distance;
}
function lire_positioncalque_x(nom){
//nom est une chaîne
//Action : retourne un entier indiquant la position du calque par rapport au bord gauche de la fenetre
return eval(document.getElementById(nom).style.left.substring(0,document.getElementById(nom).style.left.indexOf("px")));
}
function lire_positioncalque_y(nom){
//nom est une chaîne
//Action : retourne un entier indiquant la position du calque par rapport au bord supérieur de la fenetre
return eval(document.getElementById(nom).style.top.substring(0,document.getElementById(nom).style.top.indexOf("px")));
}
function largeurcalque(nom,largeur){
//nom est une chaîne, largeur est un entier qui indique la largeur du calque en pixels
//Action : modifie la largeur du calque
document.getElementById(nom).style.width=largeur;
}
function lire_largeurcalque(nom){
//nom est une chaîne
//Action : retourne la largeur du calque
return document.getElementById(nom).offsetWidth;
}
function hauteurcalque(nom,hauteur)
{
//nom est une chaîne, hauteur est un entier qui indique la hauteur du calque en pixels
//Action : modifie la hauteur du calque
document.getElementById(nom).style.height=hauteur;
}
function lire_hauteurcalque(nom){
//nom est une chaîne
//Action : retourne la hauteur du calque
return document.getElementById(nom).offsetHeight;
}
function modifierindex(nom,valeur){
//nom est une chaîne et valeur est un entier
//Action : modifie le z-index d'un calque
document.getElementById(nom).style.zindex=valeur;
}
function lire_index(nom){
//nom est une chaîne
//Action : retourne le z-index du calque
return document.getElementById(nom).style.zindex;
}
//initialisation à -1 pour que cette variable ne puisse désigner aucune touche au démarrage
toucheactive=-1;
if(gecko>0){
//détecte le code d'une touche avec un navigateur disposant du moteur Gecko
function touche_gecko(evnt){
toucheactive=evnt.keyCode;
}
document.onkeydown=touche_gecko;
}
else{
//détecte le code d'une touche avec Internet Explorer et Opera
//Attention avec certaines touches les indications d'Opera sont complètement fausses
function touche_ie(){
toucheactive=event.keyCode;
}
document.onkeydown=touche_ie;
}
Conclusion :
Cette librairie DHTML est compatible avec Internet Explorer(5.0+), Netscape(6.x et 7.x), Mozilla(1.0+), Opera(7.0+). Pour en savoir plus consultez la liste des navigateur compatibles incluse dans le zip.
Historique:
version 1.2(6/06/2003), nouveautés :
- modifierindex
- lire_index
- retrait d'un bug(avec Netscape 6.x)
- script désormais parfaitement compatible avec Opera(7.0+), une compatibilité qui
s'ajoute aux navigateurs suivant : navigateurs à base du moteur Gecko(Mozilla(1.0+), Netscape(6.0+)),
Internet Explorer(5.0+), Opera(7.0+) et tous les navigateurs respectant les norme du W3C
- modification des fonctions lire_hauteurfenetre, lire_largeurfenetre, lire_positioncalque_x, lire_positioncalque_y
- modification de la présentation de l'ensemble du script
- modification des commentaires du source
version 1.1(11/01/2003), nouveautés :
- lire_contenucalque
- lire_largeurfenetre
- lire_hauteurfenetre
- positioncalque_x
- positioncalque_y
- lire_positioncalque_x
- lire_positioncalque_y
- modification des commentaires du source
version 1.0(20/11/2002)
- 1ère version d'IDL, le script qui va vous permettre de réaliser des scripts compatible avec
la plupart des navigateurs(Internet Explorer, Netscape, Mozilla...)
Retrouvez les dernières MAJ sur
http://www.iwaweb.net/
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.