Page 1 sur 1

Aide pour rendre du Javascript utilisable sur moteur Gecko

Publié : 02 janv. 2005, 23:32
par Jorka57
Bonjour :)

Voilà avec un ami, nous développons un site internet pour notre entreprise.

Un moment sur la page d'acceuil, nous avons décidé d'utiliser un petit javascript sympa :lol:

Il fonctionne très bien sous IE (comme d'habitude....) mais sous mozilla ou opera, il passe pas...

Si des personnes pourrait nous le rendre compatible....

Merci pour vos futures contributions !!!

<script language="javaScript">
var thissize2=30
var textfont2="Arial"
var textcolor2= new Array()
textcolor2[0]="AAAAAA"
textcolor2[1]="111111"
textcolor2[2]="222222"
textcolor2[3]="333333"
textcolor2[4]="444444"
textcolor2[5]="555555"
var message2 = new Array()
message2[0]="<BR>Vente de matériel"
message2[1]=""
message2[2]="<BR>Salles dédiées"
message2[3]="Traitements <BR>&nbsp;&nbsp;&nbsp; acoustiques"
message2[4]=""
message2[5]="Vidéoprojection <BR> &nbsp;&nbsp; &nbsp; & Plasma"
var i_blurstrength2=20
var i_message2=0
var i_textcolor2=0
function blurtext2() {
if(document.all) {
if (i_blurstrength2 >=-2) {
if (i_textcolor2 >=textcolor2.length-1) {i_textcolor2=textcolor2.length-1}
document.getElementById('blurthis2').innerHTML="<span id='blurpit12' style='position:absolute;visibility:visible;width:500px; top:225px;left:340px;filter:blur(add=0,strength="+i_blurstrength2+",direction=90);font-family:"+textfont2+ ";font-size:"+thissize2+"pt;color:"+textcolor2[i_textcolor2]+"'>"+message2[i_message2]+"</span>";
document.close()
i_blurstrength2=i_blurstrength2-2
i_textcolor2++
var timer2=setTimeout("blurtext2()",70)
}
else {
if (i_textcolor2 >=textcolor2.length-1) {i_textcolor2=textcolor2.length-1}
document.getElementById('blurthis2').innerHTML="<span id='blurit12' style='position:absolute;visibility:visible;width:500px; top:225px;left:340px;filter:blendTrans(duration=4.2);font-family:"+textfont2+";font-size:"+thissize2+ "pt;color:C7A8A8'>"+message2[i_message2]+"</span>";
i_message2++
if (i_message2>=message2.length){i_message2=0}
i_blurstrength2=20
i_textcolor2=0
clearTimeout(timer2)
var timer2=setTimeout("blurtext2()",1500)
}
}
}
</script>

Publié : 02 janv. 2005, 23:49
par TheWizard
Et c'est sensé fonctionner comment ??
Car je veins d'essayer sous IE, et je ne vois rien. Alors, je m'y prends ptêtre mal ;)
Tu ne saurais pas mettre le code d'une page html complète (entre les balises [code][/code] pour éviter de possibles troncatures)?

Publié : 03 janv. 2005, 00:13
par Jorka57
Voilà l'adresse de la page pour faire des essais :

http://www.project-son.com/accueil.html

Essayer d'abord sous IE si vous le pouvez....

Merci :D

Re: Aide pour rendre du Javascript utilisable sur moteur Gec

Publié : 03 janv. 2005, 04:55
par Mirovinben
Jorka57 a écrit : "<span id='blurit12' style='position:absolute;visibility:visible;width:500px; top:225px;left:340px;filter:blendTrans(duration=4.2); font-family:"+textfont2+";font-size:"+thissize2+ "pt;color:C7A8A8'>"+message2[i_message2]+"</span>";
Gecko ne comprend sans doute pas le "filter:blendTrans" ... A faire confirmer par des pros...

Publié : 03 janv. 2005, 13:02
par martin
Mirovinben a raison, filter... est un paramètre proprétaire microsoft, donc lisible par lui seul.

Une solution dans un autre post quelques lignes plus bas :
Si tu te débrouilles en espagnol voilà une page qui fait 'exactement ce que tu veux :

http://www.tierradenomadas.com/rc003.phtml

La seule différence, c'est que l'article étant ancien il ne faut plus mettre -moz-opacity:0.5 mais opacity:0.5 (et très probablement document.getElementById('toto').style.opacity au lieu de ...style.mozOpacity

Publié : 03 janv. 2005, 13:51
par calimo
Ce n'est pas ce filtre qui va empêcher d'afficher les textes. Au pire ça va faire foirer les styles, et encore, mais il y a autre chose.

À mon avis cette autre chose est un

Code : Tout sélectionner

if(document.all)
Je ne sais pas où s'arrête la condition vu que ce n'est pas indenté, mais probablement à

Code : Tout sélectionner

else {
if (i_textcolor >=textcolor.length-1) {i_textcolor=textcolor.length-1}
document.getElementById('blurthis').innerHTML="<span id='blurit1' style='position:absolute;visibility:visible;width:500px; top:0px;left:10px;filter:blendTrans(duration=4.2);font-family:"+textfont+";font-size:"+thissize+ "pt;color:C7A8A8'>"+message[i_message]+"</span>";
i_message++
if (i_message>=message.length){i_message=0}
i_blurstrength=20
i_textcolor=0
clearTimeout(timer)
var timer=setTimeout("blurtext()",2000)
}
L'erreur est à chercher ici.

Mais en fait l'erreur c'est d'afficher le texte via javascript.
Le texte doit être dans le code HTML, il doit être caché au démarrage et réaffiché au fur et à mesure avec ces styles particuliers. :wink:
Sinon les 10% d'internautes sans JS ne verront rien du tout :wink:

Publié : 04 janv. 2005, 12:59
par Benoit
calimo a écrit :À mon avis cette autre chose est un

Code : Tout sélectionner

if(document.all)
Effectivement c'est une erreur, mais il me semble qu'Opera dit "oui" à cette question, donc si ça n'apparaît pas là non plus il y a une autre erreur.

Jorka57 : pense à regarder la console JavaScript de Firefox, il y a des chances qu'elle te dise si et où quelque chose foire.

Publié : 04 janv. 2005, 14:02
par calimo
Justement, à part des avertissements de redéclaration de variables, d'assignement à des variables non déclarées et deux usages d'arguments dépréciés...

Code : Tout sélectionner

Avertissement : deprecated arguments usage
Fichier Source : http://www.compteur.com/cpt?ID=212847&num=1
Ligne : 4
Je ne pense pas que ce soit la cause du problème... ou je me trompe ?

Publié : 04 janv. 2005, 15:06
par Benoit
Heu non là c'est un script de compteur de visites donc a priori rien à voir :)

Ce que je disais c'est que le

Code : Tout sélectionner

if (document.all)
n'était probablement pas le seul problème et qu'il s'en rendrait probablement compte en observant la console JavaScript une fois celui-ci enlevé.

Pour l'instant le reste du code est simplement "sauté" par Firefox puisque la condition initiale n'existe pas. Par contre, Opera passe sans doute cette condition mais n'affiche quand même rien, donc il y a un autre problème plus loin, qui ne sera détectable qu'une fois celle-ci enlevée.