11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

Je souhaiterais savoir s'il est possible de simuler un frameset en utilisant uniquement l'attribut <div> et du Javascript, mais sans technologie PHP.

J'aimerais éviter d'avoir ce cas :
Un fichier index.html avec :

<frameset cols="180,*">
<frame name="menu" src="menu.html">
<frame name="contenu" src="sco.html">
</frameset>

Bien sur, index.html fonctionne avec menu.html :

<h3>voici le menu</h3>
<a href="sco.html" target="contenu">charger un SCO</a>

Et avec sco.html :

<h2>Voici le SCO</h2>


Pour éviter les frames, j'ai donc essayer le code suivant, dans index.html:

<div id="menu">
<h3>voici le menu</h3>
<a href="sco.html" target="contenu">charger un SCO</a>
</div>
<div id="contenu">ici le contenu devrait changer</div>


Or, quand je clique sur le lien "charger un sco", le fichier sco.html s'ouvre dans une autre fenêtre, alors qu'il devrait être affiché dans la zone "contenu"...

Merci par avance !
Non, comme ça, ça ne marche pas...
Et à part avec les iframes, je ne vois pas comment ça pourrait marcher.
<iframe "sco.html" width...>
Mais ça ne change pas grand chose.
Maintenant avec la vitesse de transmission qu'on a, tu devrais plutôt faire des pages plus courtes et recharger toute la page plutôt que de changer de frame.
Bonjour Gazza8,

Par rapport à tes propos, je dirai qu'il faut te tourner vers la technologie Ajax (pas de rechargement complet de la page) ... ou comme le dis Deny faire plusieurs pages (donc avec rechargement complet) ...

Bonne continuation. Romain
Effectivement, les div sont des conteneurs de mise en forme, et non pas des conteneurs "purs" comme les frames. J'avais pensé à Ajax, mais dans mon cas ça ne convient pas : l'élement appelé (le "contenu") est sur le poste client, et il s'agit d'un assemblage de fichiers, une sorte de "module" indépendant, qui se suffit à lui-même... une fois qu'il apparait dans la div/frame "contenu". Or Ajax me renverra le contenu d'un fichier basé sur le serveur.

Finalement je vais me résoudre à utiliser les frames. Je voulais les éviter à cause de leurs inconvénients niveau référencement, navigation, accessibilité, etc. mais comme il ne s'agit pas d'un site professionnel et encore moins d'un site commercial, mais plus d'une application web, j'opte pour les frames.

Merci pour vos réponses.