OVH Cloud OVH Cloud

IE Firedox

1 réponse
Avatar
JPW
Dans le script suivant:

<script LANGUAGE='JavaScript' TYPE='text/javascript'>
var tbl_index='';
function voir(id_div,num){
document.getElementById(id_div).style.top= window.pageYOffset+100
document.getElementById(id_div).style.left= window.innerWidth*num
document.getElementById(id_div).style.visibility='visible';
}
</script>

la fonction voir() est appelée en double cliquant sur un champ de saisie de
formulaire comme ci-dessous:

<input type='text' size='20' name='expediteur[1]' value=''
ondblclick="javascript:tbl_index='expediteur[1]';voir('div_exp',0.3)" >

Mais.... avec Firefox et Mozilla ce fonctionne correctement : la <div>
(div_ex) apparait bien.
Avec IE , RIEN NE SE PASSE (la fonction est bien appelée, mais elle
n'apparait pas!

QQ1 saurait-il pourquoi?

Merci .... et bonne année à tous!

JPW

1 réponse

Avatar
Olivier Miakinen
Le 02/01/2005 09:59, JPW a écrit :

J'ai trouvé une solution :
pour Firefox, j'utilise pageYOffset et innerWidth
pour IE : scrollTop et offsetWidth
ce qui donne le script suivant:

if (navigator.appName == 'Netscape') {
t=window.pageYOffset+100;w=window.innerWidth*num;
}else{
t=document.body.scrollTop+100;w=document.body.offsetWidth*num;
}



Beurk ! Et pour les navigateurs qui ne s'appellent pas 'Netscape' et ne
se comportent pas comme Internet Explorer, tu fais comment ?

Si tu veux utiliser une fonction propriétaire, teste son existence au
lieu de tester le nom du navigateur :

if (window.pageYOffset && window.innerWidth) {
t=window.pageYOffset+100; w=window.innerWidth*num;
} else if (document.body.scrollTop && document.body.offsetWidth) {
t=document.body.scrollTop+100; w=document.body.offsetWidth*num;
} else {
t=(valeur par défaut); w=(valeur par défaut);
}

A+

[ suivi par l'intégralité de l'article précédent ]



Voir aussi <http://www.giromini.org/usenet-fr/repondre.html>. Merci.


--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.