Tout JavaScript.com - Scripts, Tutoriaux, Forums pour webmasters et développeurs
Retour à l'accueil
Rechercher :    

Les indispensables
Magic Menu
Les meilleurs scripts
Les forums
Les tutoriaux
La référence JavaScript
Les actus du net
Les petites annonces

Shopping
Le guide complet
Hébergement web

Les javascripts
Les plus vus
Les mieux notés
La boutique

Les tutoriaux
Introduction javascript
La structure javascript
Les limites de javascript
Les popups
Les formulaires
Le DHTML
Les cookies
Les frames
Les maths
Les chaînes de caractères
Les expressions régulières
Débugger un script
AJAX / XMLHTTPRequest
Introduction au PHP
Javascript et PHP
Traiter les données PHP
Intro base de données
Optimiser ses développements
Tous les tutoriaux

Les services
Les questions fréquentes
Les forums | Le chat
L'annuaire de sites
Le livre d'or
Contacts
A propos du site
La newsletter
 Inscription à la newsletter
HTML - Texte

Les partenaires
Beauté-test
Révélateur.com
jquery













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">
</FRAMESET>
Cette déclaration crée une page découpée de la sorte :
FRAME 1
 
 
 
FRAME 3
FRAME 2

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)
Pour voir TOUS les scripts concernant les Frames, CLIQUEZ ICI.
Ou faites une recherche sur le mot clé frame.

| © Tout JavaScript.com 1999-2005 | Scripts | Tutoriaux | Forums | Référence | Magic Menu V2 | Mailociraptor | Petites annonces informatiques |


Edité par DevTribu sarl  Google
Serveur dédié vps : Page générée en 2 msec
22/05/2013 02:01:24 - OB = off