Les iframes: problème pour le référencement!

Les iframes: problème pour le référencement! - HTML/CSS - Programmation

Marsh Posté le 02-06-2006 à 09:48:23    

Hello tout le monde!
 
J'ai construit un site web en html/css avec une page fixe avec les menus et tout ça, et une iframe au centre pour afficher les différentes pages.
 
Problème: je constate sur les statistiques d'entrées sur mon site se font presque à 20% sur des pages que doit contenir l'iframe, les visiteurs se retrouvent donc sur une page sans aucun lien et c'est embêtant!
 
Vous connaissez un moyen pour détecter que si quelqu'un arrive sur une page autre que la page d'accueil ça le redirige automatiquement vers la page d'accueil du site. Le truc est que quand il arrivera sur cette page via le site, j'ai peur que ça fasse une boucle infinie de redirection que personne n'arrive à visiter mon site du coup! :/
 
Quelqu'un à une idée?

Reply

Marsh Posté le 02-06-2006 à 09:48:23   

Reply

Marsh Posté le 02-06-2006 à 09:56:09    

Oui, avec un bout de javascript.

Code :
  1. // Lorsque la fenêtre frame n'a pas de parent:
  2. if (!window.parent)
  3. // alors rediriger vers la page complète avec frame:
  4.   window.location='index.htm?'+window.location;


Dans la page complète, index.htm:

Code :
  1. <iframe name="maframe"></iframe>


Puis du javascript:

Code :
  1. // récupérer l'url passée en paramètre
  2. var url_frame=window.location.search.substr(1);
  3. // si url valide, rediriger la frame vers cette url
  4. if (url_frame) window.maframe.location=url_frame;


(code à tester, et à adapter)

Reply

Marsh Posté le 02-06-2006 à 14:11:46    

énorme!
merci je vais essayer ça :)

Reply

Marsh Posté le 02-06-2006 à 14:25:42    

je n'arrive pas à le mettre en place :/
 
Peut être que je n'ai pas bien compris ton code.
 
Première partie (mis dans un fichier scripts.js)
on vérifie si il n'y a pas de page parente, si oui on redirige vers le fichier index du site, jusque là ok
 
Deuxième partie, la déclaration de la frame dans le fichier index, pas de problème.
 
Par contre la dernière partie je ne la comprends pas et je ne vois pas trop ou la placer :/
 
Peut tu m'éclairer?

Reply

Marsh Posté le 02-06-2006 à 15:20:13    

La dernière partie, doit être mise après la déclaration de la frame, dans une balise javascript.
Ligne 2: récupère l'url de la page, en extrait les paramètres, et notamment tout ce qui setrouve après le ?
Ligne 4: se sert de tout ce qui se trouve en paramètre comme URL de la frame à afficher
Si aucun paramètre n'est passé, ne modifie pas le contenu de la frame, te permettant de mettre un contenu par défaut au chargement de index.htm.

Reply

Marsh Posté le 02-06-2006 à 16:15:42    

Oki, j'ai compris le fonctionnement mais il doit y avoir un truc que je fais pas bien parce que ça marche pas :/
 
J'ai ça dans mon fichier index.htm
 

Code :
  1. <iframe name="centre" align="center" frameborder="0" scrolling="no" width="100%" height="100%" src="accueil.htm"></iframe>
  2.    <script language="javascript">
  3.  // récupérer l'url passée en paramètre
  4.  var url_frame=window.location.search.substr(1);
  5.  // si url valide, rediriger la frame vers cette url
  6.  if (url_frame) window.centre.location=url_frame;
  7. </script>


 
Et j'ai ça dans mon fichier accueil.htm (il ne faut pas qu'on puisse l'afficher hors de l'iframe.
J'ai essayé en plaçant dans head et dans body, aucun résultat.
 

Code :
  1. <script language="javascript">
  2. // Lorsque la fenêtre frame n'a pas de parent:
  3. if (!window.parent)
  4. // alors rediriger vers la page complète avec frame:
  5. window.location='index.htm?'+window.location; </script>


Message édité par Fused le 02-06-2006 à 16:16:30
Reply

Marsh Posté le 02-06-2006 à 19:37:23    

Ok, autant pour moi, comme j'avais pas testé, j'ai pas donné la bonne condition:

Code :
  1. <script type="text/javascript" language="javascript">
  2. <!--
  3.     // Lorsque la fenêtre frame est la fenêtre ancestrale:
  4.     if (window==window.top)
  5.     // alors rediriger vers la page complète avec frame:
  6.     window.location='index.htm?'+window.location;
  7. // -->
  8. </script>


N'oublie pas:
type=text/javascript
pour une compatibilité W3C,
et les <!-- ... //--> pour une compatibilité tous navigateurs.
Note que, pour les navigateurs ne supportant pas javascript (ou lorsque javascript est désactivé) celà ne fonctionne pas (env. 10% des cas).
Aussi tu peut ajouter le code suivant:

Code :
  1. <noscript>
  2. <a href="index.htm">Retour acceuil</a>
  3. </noscript>

Reply

Marsh Posté le 03-06-2006 à 01:12:24    

Ca marche niquel!
Je te remercie ça va beaucoup me rendre service ça!!

Reply

Marsh Posté le 18-11-2009 à 16:52:10    

bonjour
 
voilà je cherche un script comme celui ci dessus pour mon site, je l'ai essayé et ça ne marche pas.
 
mon site est en php avec un header un centre et un footer.
 
sur une des pages de ce site j'appelle toute une autre partie du site via un iframe.
 
j'ai mis le script dans une des pages pour faire le test et rien ne se passe.
 
est ce que ça vient de la complexité de ma page ?
 
je ne suis pas une rute en programmation, merci de vos lumières...
 
:g
 

Reply

Marsh Posté le 18-11-2009 à 17:35:58    

ouais, enfin par rapport au titre du topic, le script n'apporte rien ... car google and Co ne savent pas lire le javascript, et de ce fait, il faut considéré qu'il est désactivé pour eux.
 
ça veut dire que si googel a indexé ta page "iframe" et pas son conteneur, t'as plus qu'à revoir ton système de liens ...


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed