Aller au contenu

Sujets conseillés

Posté

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>

Posté

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).

Posté

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 ;)

Posté

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! :D

Posté

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 :wacko:

Posté
  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 ? :lol:

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). :P

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...