nessuno94 Posté 19 Août 2005 Posté 19 Août 2005 coucou tout le monde j'ai un problème avec ce script qui affiche une pub latérale qui descent en même temps que le défilement de la fenetre. Le problème est que depuis que j'ai passé mes pages en xhtml le script ne fonctionne plus très bien, il ne prend plus en compte la position théorique de la pub et la place a l'extrémité haute gauche de la fenetre. Qq'un pourrait il me dire comment mettre à jour ce script svp? merci de votre aide! <script type="text/javascript"> ejs_logo_url = "<? echo $image_pub;?>"; ejs_logo_redir = "<? echo $redirection_pub;?>"; if (document.getElementById) { var staticlogo=new Image; staticlogo.src=ejs_logo_url; document.write('<div id="ejs_logo" style="z-index:200;position:absolute;width:'+staticlogo.width+';height:'+staticlogo.height+'"><a href="'+ejs_logo_redir+'" target=_blank><img src="'+staticlogo.src+'" border="0" alt="" /></a></div><div id="ejs_logo2" style="z-index:100;position:absolute;width:'+staticlogo.width+';height:'+staticlogo.height+';background:#000000;filter:alpha(opacity=40); -moz-opacity: .4;"></a></div>') ejs_scx = document.body.clientWidth; ejs_scy = document.body.clientHeight; document.getElementById("ejs_logo").style.top=(ejs_scy-staticlogo.height-20); document.getElementById("ejs_logo").style.left=(820); document.getElementById("ejs_logo2").style.top=(ejs_scy-staticlogo.height-15); document.getElementById("ejs_logo2").style.left=(825); } function logoit() { if (document.getElementById) { w2=document.body.scrollTop; document.getElementById("ejs_logo").style.top=(w2+ejs_scy-staticlogo.height-20); document.getElementById("ejs_logo2").style.top=(w2+ejs_scy-staticlogo.height-15); setTimeout("logoit()",1); } } window.onload=logoit </script>
Xavier Posté 19 Août 2005 Posté 19 Août 2005 Document.write est l'exemple parfait de technologie dépassée, utilisée uniquement pour le HTML et totalement inconnue de tout bon parseur XML. Pour le XML/XHTML il faut manipuler directement l'arbre DOM avec les fonctions qui vont avec comme createElement, createTextNode ou appendChild pour ne citer que celles-ci (un petit tutoriel à ce sujet).
Dudu Posté 20 Août 2005 Posté 20 Août 2005 Concernant ta question je ne répéterais pas ce qu'a dit Xavier, qui est de toutes façons plus calé que moi à ce sujet En revanche, je vois que tu souhaites utiliser de l'opacité. Tu peux déclarer en 3ème choix CSS la règle "opacity=.4" qui sera utile pour les navigateurs modernes qui savent interpréter l'opacité sans recourir à des solutions propriétaires
nessuno94 Posté 20 Août 2005 Auteur Posté 20 Août 2005 Merci à vous 2! Dudu merci, je vais effectivement rajouter ce paramètre. Xavier peux tu m'expliquer comment changer simplement le document.write sans avoir a réécrire toute la fonction parceque le temps que je me mette dans le bain... déjà cela est-il possible?! merci!
nessuno94 Posté 20 Août 2005 Auteur Posté 20 Août 2005 merci pour vos réponses en fait le pb semble venir d'ailleur, parceque l'affichage de la bannière se fait bien (meme sous firefox!) mais s'est son repositionnement dhtml qui déconne, c'est donc la fonction logoit() qui ne s'execute pas elle est tout simplement pas pris en compte... et la je vois pas trop d'ou ça vient
petit-ourson Posté 20 Août 2005 Posté 20 Août 2005 pour firefox il y a le style : "position: fixed" ;o)
Xavier Posté 20 Août 2005 Posté 20 Août 2005 document.getElementById("ejs_logo").style.top=(w2+ejs_scy-staticlogo.height-20); document.getElementById("ejs_logo2").style.top=(w2+ejs_scy-staticlogo.height-15); <{POST_SNAPBACK}> Peut-être parce que tu as oublié les unités ? On ne t'a pas assez rappelé que les unités étaient importantes aux cours de physique ? Si document.write fonctionne alors c'est que tu n'es pas "vraiment" en XHTML, plutôt dans un mode "compatible HTML" (= tu envoies ta page en text/html plutôt qu'en application/xhtml+xml) PS : tu peux carrément supprimer le -moz-opacity, je ne sais même pas si Mozilla le supporte encore celui-ci (si c'est le cas ça ne va pas durer).
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant