Communauté Informatique NDFR.net

Communauté Informatique NDFR.net (http://www.ndfr.net/forums/index.php)
-   Programmation Web (HTML, PHP, ASP, Java, XML, etc.) (http://www.ndfr.net/forums/forumdisplay.php?f=65)
-   -   Redirection d'une page avec frame (http://www.ndfr.net/forums/showthread.php?t=2976)

fayewongfr 23-11-2003 10:45

Redirection d'une page avec frame
 
Bonjour à tout le monde !

J'ai un problème de redirection sur mon site que je voudrais resoudre.
Le probleme est le suivant : voivi le plan de mon site

Index principal ==> site en anglais ==> page des news avec une frame (avec menu vers les autres pages)
==> site en français ==> page des news avec une frame (avec menu vers les autres pages)

La frame de mon site contient donc un menu pour diriger les visiteurs vers toutes les autres pages de mon site.

Quand on accede par exemple à la page de la discographie de la chanteuse de mon site depuis le menu sur la page des news, tout va bien. Mais si l'on y accede par un moteur quelconque, ou directement en tapant l'adresse correspondante, la frame n'est plus là, bien évidemment !! Ce qui me pose problème.
Alors j'ai utilisé le petit script ci dessous pour forcer à utiliser la frame. Mais je ne voudrais pas forcément rediriger ma page de discographie vers la page qui contient la frame (à savoir la page des news).
Est-ce qu'il est alors possible de ne seulement faire rajouter la frame, tout en gardant la page trouvée (la page de discographie) ? J'espère avoir été clair...

Merci de vos réponses !


<SCRIPT LANGUAGE="JavaScript">
if (parent.frames.length < 1)
{
document.location.href = 'http://mon site/français/news';
}
</SCRIPT>
</head>

Benjy 23-11-2003 11:19

Re: Redirection d'une page avec frame
 
Je pense que dans ton cas un petit coup d'oeil au code source des pages de Doom9.org ;)
En effet, si par exemple tu essayes d'accéder à cette page directement : http://www.doom9.org/right.html, tu es automatiquement redirigé vers http://www.doom9.org/index.html?/right.html.

Petit indice : la réponse se trouve dans les fichiers frameset.js et framekill.js :)

fayewongfr 23-11-2003 13:48

Re: Redirection d'une page avec frame
 
oh... Je viens de regarder et d'examiner les sources et les fichiers scripts ! C'est plutôt compliqué :'(
Alors en fait, il faut que je fasse appel au script frameset.js sur la page que je veux rediriger... me trompe-je?

Ensuite, il me faut modifier ce frameset.js, ce que j'ai fait (je pense sans erreur).
Pour le moment, je n'ai que la redirection vers la pages des news, mais ca ne conduit pas ensuite sur la page de discographie par exemple.

Peut etre un rapport avec le framekill.js? Faut-il l'utiliser? A quoi sert-il? Comment je dois le modifier? :'( A l'aide !!

Merci beaucoup en tout cas :)

Benjy 23-11-2003 21:09

Re: Redirection d'une page avec frame
 
Code source de http://divafaye.free.fr/fr/news/index.htm :
Code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>Le site en français de Faye Wong, Diva de la pop Chinoise !</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="keywords" content="faye,wong,officiel,official,french,france,francais,english,american,chinese,reference,site,website,fayenatics,forum,afaye,lajabor,wongfei,bestfaye,graman,fayefans,fei,wan,xia,liu,jingwen,shirley,queen,diva,fans,chinoise,hong,kong,china,chine,asie,asia,singer,chanteuse,pop,cantopop,asianpop,pictures,photos,images,galeries,biographie,profile,downloads,telechargements,songs,chansons,music,musique,mp3,discographie,albums,movies,films,filmographie,2046,chinese,odyssey,2002,okinawa,clips,videos,wallpapers,fonds,ecran,skins,winamp,links,liens,final,fantasy,soundtrack,BO,FF7,FF8,FF9,FF10,eyes,on,me">
<meta name="description" content="Faye Wong, Chinese pop Diva Website : loads of informations for english and chinese Fayenatics.Faye Wong, Diva de la pop Chinoise : site de reference pour les fayenatics français, anglais et chinois">
<script type="text/javascript" src="framekill.js"></script>
<script type="text/javascript" src="frameset.js"></script>
</head>
<frameset rows="*" frameborder="NO" border="0" framespacing="0">
  <frameset cols="167,*" frameborder="NO" border="0" framespacing="0">
  <frame src="gauche.php" name="leftFrame" scrolling="no">
  <frameset onLoad="LoadFrame(); return true" rows="125,*" frameborder="NO" border="0" framespacing="0">
        <frame src="haut.php" name="topFrame" scrolling="no" noresize marginwidth="0" marginheight="15" target="_self">
        <frame name="mainFrame" scrolling="auto" src="news.php" target="_self">
  </frameset>
 </frameset>
</frameset>
<noframes><body>
</body></noframes>
</html>

A mettre dans le <head></head> de http://divafaye.free.fr/fr/news/news.php (et évidemment des autres pages allant dans la frame mainFrame) :
Code:

<script type="text/javascript" src="frameset.js">
Code source de framekill.js :
Code:

<!--
// Free the index/default.htm with Browsercheck for IE5.x
if ((navigator.appName.indexOf('Microsoft') != -1)&&(parseInt(navigator.appVersion.indexOf('5.')) != -1)&&(self != top)) {
 parent.location.href = self.location.href;
}
// Set frameset-status to "loaded", replace URL if needed
var FramesetLoaded = 1;
function LoadFrame() {
  if(self.location.search.length > 0) {
  var lengthens = self.location.search.length;
  var NewUrl = self.location.search.substring(1,lengthens);
  if (document.images)
        self.mainFrame.location.replace(NewUrl);
  else
        self.mainFrame.location.href = (NewUrl);
  }
}
//-->

Code source de frameset.js :
Code:

<!--
// Replace URL if frameset-variable != 1 or does not exist
var TargetFile = "index.html?"+location.pathname;
if (!top.FramesetLoaded) {
 if (document.images)
  top.location.replace(TargetFile);
 else
  top.location.href = TargetFile;
}
//-->


fayewongfr 24-11-2003 09:00

Re: Redirection d'une page avec frame
 
:) merci beaucoup !!!!!!!!!!

xoom 06-05-2004 12:38

Re: Redirection d'une page avec frame
 
Bonjour,

Merci pour ce code très utile et qui fonctionne très bien.

Cependant, j'ai remarqué que si le nom de la page sur laquelle on veut forcer la frame n'est pas précisé dans le fichier index.html, le script ne fonctionne pas. Ce qui implique que la redirection marchera uniquement pour la page appellé par défaut dans le fichier de frame (à moins de créer autant de fichiers "index2", "index3"... qu'il n'existe de page à rediriger...).

Ne serait-il pas possible d'adapter ce code pour qu'il puisse s'appliquer indifféremment sur n'importe quelle page du site destinée à s'afficher dans la frame ? En prenant par exemple comme référence le nom de la frame, et non celui de la page elle-même... ?



Merci d'avance

xOOm

xoom 06-05-2004 12:49

Re: Redirection d'une page avec frame
 
Autant pour moi !!

j'avais oublié de remplacer les noms des frames dans le script par les miens...

Donc ca marche parfaitement.

Encore merci !!

:cool:

xOOm

astarte 07-12-2007 13:06

Redirection d'une page avec frame
 
Bonjour,
Ce forum est-il toujours ouvert ?
J'ai un petit souci avec la redirection de page html dans un frameset
Cordialement

Benjy 07-12-2007 19:04

Quote:

Originally Posted by astarte (Post 81010)
Bonjour,
Ce forum est-il toujours ouvert ?
J'ai un petit souci avec la redirection de page html dans un frameset
Cordialement

Le forum est toujours ouvert, oui.
Quant au sujet, il serait préférable d'en créer un nouveau.


All times are GMT +2. The time now is 13:44.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.