Annonce ToutSurTout

Bienvenue sur toutsurtout.biz

Radio TST

Si vous souhaitez participer vous aussi aux discussions sur le forum, il faut vous inscrire ou vous identifier.

Le Thème TST Printemps est maintenant en place.

Les inscriptions sont actuellement OUVERTES.

Message 1 Discussion postée le 07-11-2009 à 05:15:30

Solenne
Avatar de Solenne


Titre: Modératrice insomniaque
Avancement: Niveau 4
Lieu: Avec Loic
Date d'inscription: 26-09-2009
Messages: 6 844

Javascript et les frames

Javascript et les frames

Les frames sont de plus en plus rejetées par le monde de l'internet. La plupart des grands sites les ont abandonnées et ont choisi de recopier sur chaque page le menu et tous les liens de leur navigation. Nous allons tout de même aborder la mise en place des frames et surtout leur intérêt dans la programmation JavaScript.

1 - Comment intégrer des frames ?

Pour créer une page séparée en plusieurs frames, il faut à l'origine une page principale qui remplace la zone BODY par la déclaration et le positionnement des frames.
La structure classique d'une page découpée en frames est celle-ci.

<HTML>
<HEAD>
<TITLE>Titre de page</TITLE>
</HEAD>

<FRAMESET cols="140,*">
    <FRAMESET rows="*,50" frameborder=0>
        <FRAME name="FRAME1" src="frame1.html">
        <FRAME name="FRAME2" src="frame2.html">
    </FRAMESET>
    <FRAME name="FRAME3" src="frame3.html">

Nous n'allons pas voir en détail comment créer des frames, c'est là du langage HTML et la documentation est riche dans ce domaine.

2 - Le JavaScript dans les frames
La première application qui vient à l'esprit avec les frames est la création de menu. C'est en effet la principale utilité des frames - nous verrons qu'il y en a d'autres.
En HTML, pour créer un lien qui charge une page dans une frame, il faut écrire :

    <A HREF="page.html" target="nom_frame">Le Lien</A>

Dans la balise A, target contient le nom de la frame à charger avec le fichier (ici page.html).
En JavaScript, pour charger une page dans une frame, on utilise une des instructions suivantes :

    parent.frames[nu_frame].window.location="page.html"

Ici, on fait appel au tableau frames indicé par nu_frame. Ici la frame numéro nu_frame contient page.html.

    parent.frames["frame1"].window.location="page.html"

Maintenant, on accède au tableau des frames par son nom. Le résultat est identique avec l'instruction suivante :

    parent.frame1.window.location="page.html"

Si vous souhaitez charger 2 pages dans 2 frames différentes avec 1 seul clic, JavaScript le permet.
On commence par déclarer une fonction charger avec en paramètre les noms des pages à charger dans les 2 frames :

    function charger(nom_page1,nom_page2) {
        parent.frames["frame1"].window.location=nom_page1;
        parent.frames["frame2"].window.location=nom_page2;
    }

On suppose dans cet exemple que les frames s'appellent frame1 et frame2.
On crée ensuite un lien qui appelle la fonction JavaScript charger :

    <A HREF="JavaScript:charger('page1.html','page2.html')">1 Clic et 2 pages chargées</A>

La seconde application est la sauvegarde d'informations tout au long d'une session de navigation. Les frames remplacent avantageusement les cookies s'il s'agit de stocker des informations juste pendant la navigation du visiteur. Les informations stockées sont perdues dès que le visiteur ferme son navigateur ou s'il remplace votre page par une autre.
Pour stocker des informations, il suffit de déclarer une variable dans l'entête de la fenêtre mère (celle qui contient la déclaration des frames grâce aux balises <FRAMESET>). Cette variable peut être juste une valeur (nombre, chaîne, ...) ou un objet complexe.

Exemple de stockage de l'heure d'ouverture de la session
Dans l'entête (entre les balises <HEAD> et </HEAD>) de la fenêtre parent, on déclare :

    <SCRIPT language="javascript">
        var heure=new Date();
        heure=date.getTime() // transformation de la date en millisecondes
    </SCRIPT>

Rappel : la fenêtre parent est celle qui contient la déclaration des frames

Dans la frame1, on a accès à cette variable en codant :

    <SCRIPT language="javascript">
        var h=parent.heure;
    <SCRIPT>

Cette possibilité peut être étendue aux fonctions. De la même façon que la fenêtre parente peut sauver des variables, il est possible de coder des fonctions dans son entête et de les récupérer ensuite dans toutes les frames.

Exemple de déclaration d'une fonction dans la page parente
On souhaite utiliser dans toutes les frames une fonction qui affiche une ligne de copyright.
On commence par déclarer dans l'entête de la fenêtre parente la fonction AffCopyright().

    <SCRIPT language="javascript">
    function AffCopyright() {
        document.write("<CENTER>Copyright 2000 - Tous droits réservés</CENTER>");   
    }
    <SCRIPT>

Dans toutes les frames du site, il suffit, pour afficher cette note de copyright, d'appeler la fonction ainsi :

    <SCRIPT language="javascript">parent.AffCopyright()<SCRIPT>

L'intérêt est évidemment la facilité de mise à jour sur toutes les pages du site de cette note de copyright. Il suffit de changer la fonction dans la page parent et les modifications se reportent automatiquement dans toutes les pages du site où la fonction est intégrée.

Les frames sont très utiles dans la conception de sites :

    * Elles facilitent la création et la mise à jour de la navigation
    * Elles offrent des possibilités de programmation en javascript (sauvegarde d'informations)


https://www.world-lolo.com/images/uploads/image.num1351106986.of.world-lolo.com.gif
 

Message 2 Réponse postée le 07-11-2009 à 10:17:17

Caroline
Avatar de Caroline


Titre: Modératrice de choc
Avancement: Niveau 3
Lieu: Marne
Date d'inscription: 27-09-2009
Messages: 5 364

Re: Javascript et les frames

bien même si je comprends rien mdr


http://www.toutsurtout.biz/img/UserBarTST.gif
https://www.world-lolo.com/images/uploads/image.num1258671799.of.world-lolo.com.jpeg
 

Message 3 Réponse postée le 07-11-2009 à 19:54:46

Xtrem
No Avatar


Titre: Membre Suprême
Avancement: Niveau 1
Lieu: En face de mon PC
Date d'inscription: 03-10-2009
Messages: 235

Re: Javascript et les frames

tres utile merci smile


http://www.toutsurtout.biz/img/UserBarTST.gif
 

Message 4 Réponse postée le 27-01-2010 à 06:14:38

Loic
Avatar de Loic


Titre: Administrateur d'élite
Avancement: Niveau 5
Lieu: Avec Solenne
Date d'inscription: 26-09-2009
Messages: 104 830
Site web

Re: Javascript et les frames

Elles sont aussi très utilisées dans le warez pour les top sites.


http://www.toutsurtout.biz/img/UserBarTST.gif
http://www.toutsurtout.biz/img/Sign-Loic.gif
Loic DL un jour, Loic DL toujours ...