Membre de ClickFR, Reseau francophone Paie-Par-Click
Accueil
Accueil
- [ CSS : ] [ DHTML : ] [ HTML : ] [ JavaScript : ] [ Refs : ]
Accueil

JavaScript 1.3

  Ne sortez pas des frames !!

fonction de ce script  principe de ce script  le script lui-meme  demonstration du script  telechargement du script

  Fonction
Le but de ce script est de replacer systématiquement vos pages dans les frames (cadres) que vous utilisez sur votre site.
Si vous n'utilisez pas de frames (cadres), ce script est inutile.
Si vous en utilisez, cela permettra que votre présentation en frames (cadres) soit respectée en permanence et que les visiteurs qui bookmarkent une de vos pages, lorsqu'ils la rappellent, retrouvent les cadres qui étaient autour !
  Principe
Chaque page appelée au sein d'un frameset (jeu de cadres) vérifie au moment de son chargement si elle est appelée dans un frameset ou pas. Si tel n'est pas le cas, elle appelle d'elle-même le frameset, se mettant en paramètre. Le frameset lui vérifie lui aussi la manière dont il est appelé.
Si c'est avec un paramètre, il utilise ce paramètre pour déterminer les fichiers qu'il doit appeler dans ses cadres, sinon, il appelle les fichiers spécifiés par défaut.

On utilisera 4 fichiers au total : le frameset, une page de 'contour', une page de contenu par défaut, une autre page de contenu.
Le frameset aura la disposition suivante :
  Le script
le frameset : index.html
<html>
<script language="JavaScript">
/* La variable 'contenuSRC' prend deux valeurs possibles : soit ce qui se situe après le point d'interrogation (?) dans l'URL (il (le '?') n'apparait que si cette page est demandée par une des pages 'voulant absolument' être au sein de ce jeu de cadres (frameset)), soit le nom du fichier par défaut noter en fin de ligne */
contenuSRC = (location.search.substring(1)) ? location.search.substring(1) : 'defaut.html';

// On 'nettoie' l'URL récupérée
contenuSRC = unescape(contenuSRC);

// La variable suivante constituera le code du jeu de cadres (frameset)
var writeFrame = '';

// Début de l'écriture du jeu de cadres
writeFrame += '<frameset cols="*,575,*" border="1" framespacing="0" frameborder="0">';
writeFrame += '<frame src="contour.html">';
writeFrame += '<frameset rows="50,*,50">';
writeFrame += '<frame src="contour.html">';

// Affectation du nom du fichier à placer au centre du jeu de cadre (le contenu)
writeFrame += '<frame src="' + contenuSRC + '" name="contenu" noresize>';
writeFrame += '<frame src="contour.html">';
writeFrame += '</frameset>';
writeFrame += '<frame src="contour.html">';
writeFrame += '</frameset>';

// Ecriture du jeu de cadres (frameset)
document.write(writeFrame);
</script>
</html>

le contour : contour.html
<html>
<head>
<title>Ne sortez pas des frames !!</title>
</head>

<body bgcolor="#EEEEEE">
</body>
</html>

la page par défaut : defaut.html
<html>
<head>
<title>Ne sortez pas des frames !!</title>

<script language="JavaScript">

// On récupère les valeurs de la page en cours et de celle du plus haut niveau de cadre
maPage = self.location;
cettePage = top.location;

// Si les deux sont les mêmes (la page n'est pas dans un jeu de cadres (frameset)
if (cettePage == maPage) {

// On 'nettoie' l'URL de la page en cours
contenuSRC = escape(maPage);

// On créé une adresse url du type : "jeu_de_cadres.html?page_en_cours.html" qui sera décodée par le fichier détaillant le jeu de cadres (frameset)
cadreURL = 'nav_inframes_index.html?' + contenuSRC;

// On lance cette adresse à la place de la page en cours
top.location.href = cadreURL;
}

</script>

</head>

<body>

Ceci est la page par défaut, elle ne peut s'afficher que dans un jeu de cadres (frameset).
<a href="contenu.html" target="_blank">Lien vers une autre page dans une nouvelle fenêtre (target="_blank"), et pourtant...</a>

Ou essayez de faire un 'clic-droit' ou 'Ctrl+clic' et demandez l'ouverture du lien ou du cadre dans une nouvelle fenêtre, vous verrez...

</body>
</html>

une autre page : contenu.html
<html>
<head>
<title>Ne sortez pas des frames !!</title>

<script language="JavaScript">

maPage = self.location;
cettePage = top.location;

if (cettePage == maPage) {
contenuSRC = escape(maPage);
cadreURL = 'nav_inframes_index.html?' + contenuSRC;
top.location.href = cadreURL;
}

</script>

</head>

<body>

Ceci est une page qui ne peut s'afficher que dans un jeu de cadres (frameset).

Cela permet de bookmarker le cadre (dont vous ne connaissez pas l'URL), et lorsque vous y revenez, les cadres autour se replaceront automatiquement.

</body>
</html>
  Démonstration

Voir la démonstration

  Téléchargement
Ce script est disponible en deux versions :
  • le script est intégré à la page où il agit,
  • le script est dans un fichier séparé de la page où il agit (fichier.js et fichier.html).

    L'intérêt d'un script dans un fichier séparé est de pouvoir le partager entre plusieurs pages html.
    Cela permet aussi de le rendre inaccessible à toute personne qui souhaiterai l'enregistrer pour une autre utilisation.
  • Script intégré :
    nav_inframes.zip
    2 Ko
    telechargez le script telechargez le script
    Script séparé :
    nav_inframes2.zip
    2 Ko
    Recherche
    aide sur la recherche
    hit-parade
    Votez TOP Ouaibe !

    statistiques
    aide sur les contacts aide sur la mailing-list aide sur la newsletter