Dans mon fichier neige.js, il y a le script suivant :
<!--
fonction neige ()
{
<SCRIPT LANGUAGE="javascript">
<!--- hide script from old browsersvar isNS (navigator.appName "Netscape" && parseInt(navigator.appVersion) >= 4);
var nbimg = 18;
var typeimg;
var coordx=new Array(nbimg);
var coordy=new Array(nbimg);
var vity=new Array(nbimg);
var temx=new Array(nbimg);
var decx=new Array(nbimg);
var img=1;
var date=new Date();
var jour=date.getDate();
var mois=date.getMonth()+1;
function InitNeige() {
if (isNS) {tailley window.innerHeight;taillex window.innerWidth;offsety = window.pageYOffset;offsetx = window.pageXOffset;
var vara="LAYER NAME";
var varb="/LAYER";var styl="";
}
else {tailley document.body.clientHeight;taillex document.body.clientWidth;offsety = document.body.scrollTop;offsetx = document.body.scrollLeft;
var vara="DIV ID";
var varb="/DIV";
var styl='style="position:absolute;left:0px;top:0px;width:1px;height:1px;visibility:visible;"';}
for (i=0;i<nbimg;i++){
chaine='<'+vara+'="image'+i+'" '+styl+'><'+varb+'>';
document.write(chaine);
coordx[i]=80+(Math.random()*taillex-160);coordy[i]=i*(tailley/(nbimg-1));
vity[i]=img; temx[i]=(Math.random()*19);decx[i]=0;
img+=1;if (img>3){img=1};
}
}
function neige() { if (isNS) {tailley window.innerHeight;taillex window.innerWidth;offsety = window.pageYOffset;offsetx = window.pageXOffset;} else {tailley document.body.clientHeight;taillex document.body.clientWidth;offsety = document.body.scrollTop;offsetx = document.body.scrollLeft;}
for (i=0;i<nbimg;i++){
if (isNS){
eval ('document.image'+i+'.top = coordy[i];');
eval ('document.image'+i+'.left = coordx[i];');
}
else{
eval ('document.all.image'+i+'.style.top = coordy[i];');
eval ('document.all.image'+i+'.style.left = coordx[i];');
}
temx[i]+=1
if (temx[i]>20) {
decx[i]=1-(Math.random()*2);
temx[i]=0;
}
coordx[i]+=decx[i];
coordy[i]+=vity[i];
maxi=tailley+offsety;
if (coordy[i]>maxi) {coordx[i]=80+(Math.random()*taillex-160);coordy[i]=-100;}
}
tempo = setTimeout("neige()", 50);
}
// end hiding --->
</script>
<script>InitNeige()</script>
}
-->
Pourquoi cela ne fonctionne pas ???
Quand je place se cript sur dans ma page cela fonctionne à merveille, mais des que je veux l'inclure dans mon fichier externe neige.js, là cela ne fonctionne plus :sad)
the_smurf
Messages postés283Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention22 juin 2006 21 déc. 2004 à 14:00
J'ai testé cher moi ça marche nikel.
Voyons ce qui différe:
J'ai créé un fichier neige.js contenant:var isNS (navigator.appName "Netscape" && parseInt(navigator.appVersion) >= 4);
var nbimg = 18;
var typeimg;
var coordx=new Array(nbimg);
var coordy=new Array(nbimg);
var vity=new Array(nbimg);
var temx=new Array(nbimg);
var decx=new Array(nbimg);
var img=1;
var date=new Date();
var jour=date.getDate();
var mois=date.getMonth()+1;
function InitNeige() {
if (isNS) {tailley window.innerHeight;taillex window.innerWidth;offsety = window.pageYOffset;offsetx = window.pageXOffset;
var vara="LAYER NAME";
var varb="/LAYER";var styl="";
}
else {tailley document.body.clientHeight;taillex document.body.clientWidth;offsety = document.body.scrollTop;offsetx = document.body.scrollLeft;
var vara="DIV ID";
var varb="/DIV";
var styl='style="position:absolute;left:0px;top:0px;width:1px;height:1px;visibility:visible;"';}
for (i=0;i<nbimg;i++){
chaine='<'+vara+'="image'+i+'" '+styl+'><'+varb+'>';
document.write(chaine);
coordx[i]=80+(Math.random()*taillex-160);coordy[i]=i*(tailley/(nbimg-1));
vity[i]=img; temx[i]=(Math.random()*19);decx[i]=0;
img+=1;if (img>3){img=1};
}
}
function neige() {if (isNS) {tailley window.innerHeight;taillex window.innerWidth;offsety = window.pageYOffset;offsetx = window.pageXOffset;}else {tailley document.body.clientHeight;taillex document.body.clientWidth;offsety = document.body.scrollTop;offsetx = document.body.scrollLeft;}
for (i=0;i<nbimg;i++){
if (isNS){
eval ('document.image'+i+'.top = coordy[i];');
eval ('document.image'+i+'.left = coordx[i];');
}
else{
eval ('document.all.image'+i+'.style.top = coordy[i];');
eval ('document.all.image'+i+'.style.left = coordx[i];');
}
temx[i]+=1
if (temx[i]>20) {
decx[i]=1-(Math.random()*2);
temx[i]=0;
}
coordx[i]+=decx[i];
coordy[i]+=vity[i];
maxi=tailley+offsety;
if (coordy[i]>maxi) {coordx[i]=80+(Math.random()*taillex-160);coordy[i]=-100;}
}
tempo = setTimeout("neige()", 50);
}
Et dans neige.html contenant:
<html>
<head>
<script LANGUAGE="JavaScript" src="neige.js"></script>
</head>
<script>InitNeige()</script>
</html>
Ils sont dans le même répertoire
Si j'avais mis neige.js dans un autre répertoire je l'aurrais adressé de façon relative par rapport au répertoire contenant neige.html
ex: <script LANGUAGE="JavaScript" src="js/neige.js"></script>
signifie que neige.js se trouve dans un répertoire js QUI SE TROUVE dans le répertoire où se trouve neige.htlm
Autre exemple:
<script LANGUAGE="JavaScript" src="../../js/neige.js"></script>
Là je remonte de 2 niveaux dans l'arborescence et je redescends dans un répertoire js où se trouve neige.js
the_smurf
Messages postés283Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention22 juin 2006 21 déc. 2004 à 15:28
non ce n'est pas du à l'extension, le php ne fait que générer de l'html. Et ta page pourrait être en .toto si tu forces l'ouverture avec IE ça doit fonctionner.
As tu déjà essayé un cas simple.
Tu crées juste un fichier neige.html et un fichier neige.js en copie collant ce qu'il y a dans mon premier post.
Si ça ne marche toujours pas gros soucis sinon... tu continues pas à pas.
Tu renommes juste neige.html en neige.php tu test....
Pas à pas pour voir ce qui déconne...
Tout ce que je peux te dire d'ici, c'est que ton script fonctionne bien. Je l'ai testé tout à l'heure avec IE6.
rem78
Messages postés230Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 5 avril 2015 21 déc. 2004 à 16:11
bon j'ai fais un essais avec ma page neige.html et le fichier neige.js et tout fonctionne correctement.
Donc, j'ai changer mon extension en de ma page en neige.php et là cela ne fonctionne plus avec les lignes suivante :
rem78
Messages postés230Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 5 avril 2015 21 déc. 2004 à 16:16
par contre quand je met le script complet dans le body de ma page php, cela fonctionne correctement.
Visiblement il y a un prb avec la communication entre ma page.php et le fichier externe neige.js pourtant cela fonctionne corectement avec les memes lignes de commande dans la page neige.html.
Là je ne vois pas pourquoi ?
the_smurf
Messages postés283Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention22 juin 2006 21 déc. 2004 à 16:44
J'ai installé Easyphp pour pouvoir tester la chose et chez moi tout fonctionne parfaitement.
J'ai renommé neige.html en index.php puis j'ai placé cet index.php avec neige.js dans le répertoire www de easyphp. Je fais tourner le serveur local et là ça marche.
Je pense que tu as fait pareil. Là je ne vois vraiment pas ce qui peut déconner.
rem78
Messages postés230Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 5 avril 2015 21 déc. 2004 à 18:15
moi, je test directement sur l'hébergeur de mon site, donc moi je ne comprend pas pourquoi.... comme mon site est entièrement en frames je pense que cela peut influer là desus parcontre le pourquoi du comment là je n'arrive pas à comprendre....mysthère !!!
Bref, pour que cela fonctionne je suis obligé de mettre le script complet dans ma page..; à défaut d'autre chose !!!
Mais un autre truc ce script n'est visiblement pas compatible avec nestcap car lese flocon reste bien sagement rangés en haute à gauche de la page... Ca c'est bien dommage !!!