Bonjour,

Je fais un site, avec un menu vertical
Ce menu va évoluer, et mon site fait des centaines de pages

Avant mon site était en Frames : mais cela me pose des problèmes avec les moteurs de recherches qui pointent sur les pages de contenu sans afficher le menu (perte de visiteurs), et mes pages sont assez hautes alors la navigation avec les ascenseurs est laborieuse : donc, exit les frames, on passe au relookage

Je fais donc le site en pleine page, mais pour ne pas copier/coller 200 fois le menu dans toutes les pages, sans compter le problème des évolutions du menu toutes les semaines, j'ai décidé de le mettre dans une Iframe (appel à un fichier menu.htm externalisé)
Mais j'ai rencontré un bug avec l'Iframe sous IE6/XP/SP2 (contenu de l'iframe qui disparait partiellement lors du resize de la fenetre de IE)

Alors j'ai suivi les infos trouvées sur Alsacreations
j'ai remplacé mon Iframe par un OBJECT [edit : c'est en fait inutile et pose des problèmes d'incompatibilités]

jusque ici, tout bon, ma page apelle bien mon menu qui est dans un fichier externe séparé (donc pour modifier mon menu, je n'ai qu'1 seule page html a changer, c'est idéal)

PROBLEME :
dans mon menu (inclus en object) j'ai des liens
et ces liens doivent donc remplacer la page principale, qui va re-apeller le menu

si je mets les liens en target="_top" :
- ca ne marche pas sous IE Smiley fache , il ouvre la page dans l'object !
- ca marche sous firefox2 pour une fois qui gère l'object comme une iframe en fait (ah le malin)

si je ne précise pas le target, ca s'ouvre dans l'object, donc pas bon

MA QUESTION :
comment dire au lien d'ouvrir la page dans le navigateur lui même, équivalent d'un target="_top"
et de préférence sans javascript a cause des ceuses qui coupent le javascript on sait pas pourquoi Smiley bawling

merci de votre aide Smiley smile

EDIT :
- suppression de la source, de toute façon ya pas de solution
- maj du titre
- bug iframe contourné avec un height="100%" dans ma définition de mon iframe
- suppression de l'object qui n'a en fait aucun interet
Modifié par leZone (11 Apr 2007 - 10:15)
Salut,
je n'ai jamais utilisé object car à mon avis elle n'est pas tellement differente des frames, mais je crois que pour que sa marche il faut que "_top" soit le nom de la partie principale, c-a-d tu dois avoir

...name="_top"..

pour l'object principal et
 
target="_top"

dans ton menu...mais je repete je ne l'ai jamais utilisé
Effectivement, object n'est pas adapté pour ce genre de choses. On n'y gagne rien par rapport à une iframe, et on y perd en compatibilité avec les différents navigateurs et en fonctionnalités. À oublier.

En gros, le choix est simple :
- soit tu utilises des frames ou iframes (des pages de contenu distinctes, avec à chaque fois une iframe pour ne pas dupliquer le code HTML du menu) ;
- soit tu passes par un langage serveur comme le PHP pour construire tes pages.

Pour PHP, ont peut faire quelque chose de simple, du genre :
http://css.alsacreations.com/Tutoriels-PHP/Inclure-un-fichier-dans-un-autre-grace-a-CSS-et-PHP

(Bien noter qu'un include() en PHP n'a rien à voir, techniquement, avec les frames, même si les deux techniques ont parfois des buts communs.)
bon, bah, tant pis alors
on va reprendre les bonnes vieilles méthodes, puisque les soi disant méthodes modernes n'apportent rien de plus si ce n'est des incompatibilités Smiley lol

VIVE LES FRAMES !
leZone a écrit :
on va reprendre les bonnes vieilles méthodes, puisque les soi disant méthodes modernes n'apportent rien de plus si ce n'est des incompatibilités Smiley lol

Les méthodes modernes, c'est la programmation en PHP ou autre langage serveur, ou bien l'utilisation de systèmes de gestion de contenu. Smiley cligne