SELFHTML

Empêcher l'aperçu de vos pages dans des cadres

Page d'information: vue d'ensemble

vers le bas Remarques sur cet exemple
vers le bas Texte source avec explications

Démonstration - nouvelle fenêtre Exemple d'affichage: aperçu

 vers le bas 

Remarques sur cet exemple

Si vous établissez vos propres pages WWW, vous ne voudrez certainement pas que votre splendide ouvrage soit affiché dans une petite fenêtre d'une page étrangère. Ceci est pourtant possible sans difficulté à l'aide de Chapitre: vue d'ensemble cadres, et il existe quelques projets guide du Web qui sont assez impudents pour afficher des projets étrangers comme dans une "vitrine" dans leurs propres projets. Lisez aussi à ce sujet la partie sur les Autre page d'information effets de vitrine déloyaux .

Avec un petit JavaScript, vous pouvez imposer que vos propres pages, lorsqu'elles sont appelées, occupent dans tous les cas la totalité de la fenêtre du navigateur. Le script impose l'affichage en plein écran du fichier HTML si une autre page essaie de charger le fichier dans une fenêtre cadre. Le script n'a aucun effet sur des liens ou appels "normaux" du fichier.

 vers le hautvers le bas 

Netscape 2.0MS IE 3.0 Texte source avec explications

L'exemple montre le fichier qui doit empêcher le chargement dans un jeu de cadres. Les fichiers qui, dans l'exemple d'affichage font partie du jeu de cadres, sont sans importance pour la compréhension.

Exemple:

Démonstration - nouvelle fenêtre Exemple d'affichage: aperçu

<html>
<head>
<title>Empêcher l'aperçu de vos pages dans des cadres</title>
<script type="text/javascript">
<!--
 if(top!=self)
  top.location=self.location;
//-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#AA5522" vlink="#772200" alink="#000000">

<h1>Aucune chance pour les d&eacute;tenteurs de vitrine!</h1>

</body>
</html>

Explication:

Le petit JavaScript de l'exemple doit se trouver dans l'entête de chaque fichier HTML que vous ne désirez pas voir apparaître dans des cadres étrangers. . Le script est exécuté automatiquement au chargement du fichier, étant donné que le code n'est pas lié à une fonction. Dans le code - il ne comprend qu'une seule Autre page d'information instruction conditionnelle - il est demandé avec top!=self, si, la référence du niveau le plus élevé correspond au propre niveau. Si self, donc la fenêtre elle-même est également la fenêtre du niveau le plus élevé (top), alors tout va bien et l'instruction qui dépend de la condition n'est pas exécutée. Si par contre self n'est pas la même que top, cela signifie que des cadres sont affichés. Dans ce cas, l'instruction top.location=self.location est exécutée. Avec cette instruction, vous imposez que le fichier actuel soit affiché dans tous les cas dans la totalité de la fenêtre d'affichage du navigateur.

Attention:

Avec Opera 5.12 vous ne pouvez pas accéder au niveau de fenêtre le plus élevé si celle-ci ne fait pas partie de votre propre domaine. Vous pouvez cependant faire en sorte, par un détour, que ce navigateur ferme le jeu de cadres. Pour cela, vous devez faire en sorte qu'un lien avec la propriété target="_top" soit cliqué.

Exemple:

Démonstration - nouvelle fenêtre Exemple d'affichage: aperçu

<html>
<head>
<title>Empêcher l'aperçu de vos pages dans des cadres</title>
<script type="text/javascript">
<!--

 if(top!=self)
  {
    if (window.opera) window.onload=liberer_opera;
    else top.location=self.location;
  }

function liberer_opera()
{
  document.links['liberer'].click();
}
//-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#AA5522" vlink="#772200" alink="#000000">

<a name="liberer" href="affichage_page_opera.htm" target="_top"></a>

<h1>Aucune chance pour les d&eacute;tenteurs de vitrine!</h1>
</body>
</html>

Explication:

Dans cette page se trouve un lien invisible (lien sans texte de lien) nommé liberer. Ce lien a pour fenêtre cible _top et comme cible du lien la page elle-même. S'il est établi au chargement de la page que celle-ci se trouve dans un jeu de cadres étranger, alors tous les navigateurs excepté Opera, utilisent le script décrit vers le haut en haut. Dans Opera par contre, le Autre page d'information gestionnaire d'événement onload est initialisé. L'appel de window.onload=liberer_opera a pour mission d'appeler, après le chargement de la page, la fonction liberer_opera(). Dans cette fonction, il ne se passe rien d'autre que cliquer sur le lien grâce à la méthode click(). Cette méthode non documentée fonctionne avec tous les réglages d'identification d'Opera. La cible du lien se charge dans la fenêtre du niveau le plus élevé et ferme le jeu de cadres.

 vers le haut
page suivante Autre page d'information Calculatrice
page précédente Autre page d'information Changer simultanément deux cadres
 

© 2001 Stefan Münz / © 2003 Traduction Adresse électronique Serge François, 13405@free.fr
Adresse électronique selfhtml@fr.selfhtml.org