Prb pour appeler un fichier externe .js

rem78 Messages postés 230 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 5 avril 2015 - 21 déc. 2004 à 13:41
the_smurf Messages postés 283 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 22 juin 2006 - 21 déc. 2004 à 19:26
Bonjour,

Voila je n'arrive pas à pouvoir appeler mon fichier externe neige.js depuis une page de mon site ( ce fichier se trouve à la racine de mon serveur)

Je l'appel comme ceux-çi :

<script LANGUAGE="JavaScript" src="neige.js"></script>

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;

if (((mois==12) && (jour>=21)) || ((mois==3) && (jour<21)) || (mois<3)) {typeimg="flocon";}
if (((mois==3) && (jour>=20)) || ((mois==6) && (jour<20)) || ((mois>3) && (mois<6))) {typeimg="fleur";}
if (((mois==6) && (jour>=21)) || ((mois==9) && (jour<21)) || ((mois>6) && (mois<9))) {typeimg="soleil";}
if (((mois==9) && (jour>=20)) || ((mois==12) && (jour<20)) || ((mois>9) && (mois<12))) {typeimg="feuille";}

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)

Merci de votre aide

rem78

10 réponses

the_smurf Messages postés 283 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 22 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;

if (((mois==12) && (jour>=21)) || ((mois==3) && (jour<21)) || (mois<3)) {typeimg="flocon";}
if (((mois==3) && (jour>=20)) || ((mois==6) && (jour<20)) || ((mois>3) && (mois<6))) {typeimg="fleur";}
if (((mois==6) && (jour>=21)) || ((mois==9) && (jour<21)) || ((mois>6) && (mois<9))) {typeimg="soleil";}
if (((mois==9) && (jour>=20)) || ((mois==12) && (jour<20)) || ((mois>9) && (mois<12))) {typeimg="feuille";}

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

J'espère que ça résoudra ton problème.
0
rem78 Messages postés 230 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 5 avril 2015
21 déc. 2004 à 14:23
Bonjour the_smurf,

Dis moi tant ton fichier neige.js, il a avant le script la ligne de commande suivante :

fonction neige () {

....le script

}

C'est ça ? ou il y a simplement le script sans aucune lignes avant et après ?

Merci de ton info !!

rem78
0
the_smurf Messages postés 283 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 22 juin 2006
21 déc. 2004 à 14:34
La réponse est non: directement le script
J'ai fait un copier coller du contenu de mon fichier neige.js dans le post précédent
0
rem78 Messages postés 230 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 5 avril 2015
21 déc. 2004 à 14:57
Je viens d'éssayer ça, mais cela ne fonctionne pas dans ma page php, je ne sais pas si cela est dû à mon extension php et non html ?

@++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
the_smurf Messages postés 283 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 22 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.
0
rem78 Messages postés 230 Date d'inscription vendredi 23 avril 2004 Statut Membre Derniè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 :

<html>
<head>
<script LANGUAGE="JavaScript" src="neige.js"></script>
</head>

<script>InitNeige()</script>

</html>

Donc visiblement en php ça ne marche pas et pourquoi ???
bizar ....

@++
0
rem78 Messages postés 230 Date d'inscription vendredi 23 avril 2004 Statut Membre Derniè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 ?

@++
0
the_smurf Messages postés 283 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 22 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.

Essaye
<script LANGUAGE="JavaScript" src="./neige.js"></script>

Mais franchement je n'y crois pas...
0
rem78 Messages postés 230 Date d'inscription vendredi 23 avril 2004 Statut Membre Derniè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 !!!

@++
0
the_smurf Messages postés 283 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 22 juin 2006
21 déc. 2004 à 19:26
tu peux encore essayer de déclarer tes scripts dans le header de ta page où tu as le frameset...
0
Rejoignez-nous