Javascript: deux p'tites questions

Javascript: deux p'tites questions - HTML/CSS - Programmation

Marsh Posté le 14-03-2005 à 19:18:50    

Salut à tous,
 
j'ai deux questions qui m'énervent violemment et j'aimerais bien avoir une réponse claire là-dessus:
 
1) Le head
Je comprends pas pourquoi ce code:

Citation :

<html>
<head>
 
<script type="text/javascript">
document.write("Salut" );
</script>
 
</head>
<body>
</body>
</html>


 
affiche bien "Salut".  :??:  Jusqu'à présent j'avais cru comprendre que ce qui était dans le Head ne s'exécutait que s'il était appelé dans le Body. Je me trompe-je?
 
2) La portée des variables.
Les variables , même globales, définies dans un script ne sont accessibles QUE dans ce script? Il n'est pas possible d'y avoir accès dans un autre script?
 
 :sol:


Message édité par ramkin le 14-03-2005 à 19:19:04

---------------
Heureusement que par-delà l'infini, quand il ne reste plus aucun espoir, veille le capitaine Flam...
Reply

Marsh Posté le 14-03-2005 à 19:18:50   

Reply

Marsh Posté le 14-03-2005 à 19:59:57    

1) Oui tu te trompe. Les JS dans le head sont executes sans probleme, pas besoin qu'ils soient "appeles" depuis le body.
En realite voila ce qui se passe. Le navigateur lorsqu'il commence a afficher une page, va attendre de recevoir tout le contenu du head avant de commencer a afficher le reste de la page (qui arrive au fur et a mesure).
Donc l'avantage de placer les JS dans le head, c'est que l'on est sur que ces derniers sont charges par le navigateur. Donc du coup on peut les appeler depuis le body sans probleme.  
En revanche si tu places un JS a la fin de ton body et que tu fait appel a ce dernier tout au debut de ton body, ton script risque de ne pas fonctionner car au moment de l'appel le navigateur n'as pas encore execute l'edit JS.
 
2) Tu es sur de toi ? Tu aurais un exemple sous la main ?
Ca me semble tres bizzare, car depuis un JS tu peux appeler des fonctions d'un autre JS sans prob, et pour JS une var ou une fonction c'est quasiment la meme chose...

Reply

Marsh Posté le 14-03-2005 à 20:06:09    

Salut Cerel,  :hello:  
 
1)Ok, bien compris pour le head.
 
2) Oui je parlais bien de variable. Parce que justement, pour utiliser une variable qui doit être accessible dans plusieurs scripts j'utilise une fonction. Mais c'est un peu lourd.... :( . C'était juste une confirmation en fait, parce que n'en faisant qu'à ma tête j'ai bien essayer de déclarer des variables ultra-top-globales de partout, et bien-sur, ça marche pas.
 
 :sol:


---------------
Heureusement que par-delà l'infini, quand il ne reste plus aucun espoir, veille le capitaine Flam...
Reply

Marsh Posté le 14-03-2005 à 20:29:10    

Donne un lien ou un exemple, car ca me semble vraiment bizzare.

Reply

Marsh Posté le 14-03-2005 à 20:32:21    

cerel a écrit :

Donne un lien ou un exemple, car ca me semble vraiment bizzare.


 
Je comprends pas bien... :??:  Quel genre d'exemple tu veux que je post? Je peux pas te poster un exemple de quelque chose qu'on ne peut pas faire.  :??:


---------------
Heureusement que par-delà l'infini, quand il ne reste plus aucun espoir, veille le capitaine Flam...
Reply

Marsh Posté le 11-04-2005 à 10:38:11    

Petit deterage.
 
En effet, les variables definies dans un fichier ne sont disponibles que dans ce fichier et dans le fichier "pere".
En gros si tu ajoutes un fichier javascript a l'interieur d'un document html, les varialbes que tu declares dans ce javascript seront accessibles a l'interieur de ce dernier, mais egalement dans le fichier html.
Malheuresement si tu ajoutes un autre fichier javascript au document html, ce javascript la n'auras pas acces au variables du premier javascript.
 
Il existe peut-etre une maniere d'y acceder, mais je ne la connais pas.
 
En revanche on peut tres arriver a y acceder, a condition de modifier les deux fichiers.
On va tirer partie du fait qu'avec javascrip il est facile d'ajouter des "proprietes" a des objets existants tres facilement.
 
En fait, on va ajouter un propriete a l'objet "document".

Code :
  1. document.test='salut';
  2. [/ode]
  3. Dans les autres scritps on pourra y acceder tout simplement
  4. [code]
  5. alert(document.test); // si tout va bien, affiche 'salut'


 
Donc le "trick" pour faire des variables "globales" accessibles depuis tous les scripts, et de choisir un convention entre les scripts. Admetons que l'on va creer un tableau associatif "document.globales" qui contiendra les variables globales.
 
Et voila, on a reussi a "creer" des variables globales en javascript :D
 
J'espere que la reponse n'est pas trop tardive, j'ai reflechi a ca hier tout a fait par hasard.
 
Maintenant je vais voir si j'arrive a creer une fonction "include" en javascript. Car je ne connais aucun moyen de pouvoir dire a un fichier javascript d'en inclure un autre (alors peut-etre qu'en ajoutant dynamiquement le script au document ...)


Message édité par cerel le 11-04-2005 à 10:38:47
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed