SELFHTML

Forum SELFHTML: Archives:
Barre d'outils en js.

Page d'information: vue d'ensemble
vers le bas 

(JAVASCRIPT) Barre d'outils en js.

Le message suivant est de: Julien, Adresse électronique johnie@beedul.net, 15. 04. 2004, 13:54
http://www.beedul.net

Bonjour,

Tout d'abord merci de l'intérêt que vous porterez à mon problème.
Comme indiqué à cette page (http://selfhtml.selfhtml.com.fr/html/entete/relations.htm), le contenu des balises link d'entête est complètement ignoré par les navigateurs.
Dans le cadre d'un projet d'étudiant, je dois créer une interface permettant de lire des documents html. Cette interface est composée de 3 frames, celle de gauche étant un menu de type explorateur, celle du haut contenant les boutons de navigation qui trouveront leur url cible dans les balises link d'entête, et celle du bas qui contient le document html lui même. Je dois donc créer une barre d'outils en javascript qui tienne compte du contenu de ces balises link pour naviguer dans un document, à la manière de la navigation dans Acrobat Reader par exemple. Je ne vois cependant pas quelle est la procédure à suivre, une fois le contenu des link récupérés grâce à getElementsByTagName(), afin de modifier la valeur des boutons de navigation dynamiquement en tenant compte du contenu des link de chaque page.
Une solution pour contourner ce problème serait d'utiliser un script du style "changer simultanément deux cadres", mais qui m'obligerait à recréer à chaque fois la page html du menu de navigation (frame du haut) avec les liens de navigation modifiés.

Si quelqu'un peut me donner des indications ou tout autre information utile, merci d'avance !

Cordialement.


 
vers le hautvers le bas 

(JAVASCRIPT) Barre d'outils en js.

Le message suivant est de: Patrick Andrieu, Adresse électronique paf@atomic-eggs.com, 15. 04. 2004, 16:57
http://www.selfhtml.com.fr/equipe/patrick.htm

Salut!



»» (http://selfhtml.selfhtml.com.fr/html/entete/relations.htm), le contenu des balises link d'entête est complètement ignoré par les navigateurs.


La page date un peu, car depuis déjà un bout de temps, les nouvelles versions de Mozilla et Opera interprètent relativement bien la balise link.


»» Cette interface est composée de 3 frames, celle de gauche étant un menu de type explorateur, celle du haut contenant les boutons de navigation qui trouveront leur url cible dans les balises link d'entête, et celle du bas qui contient le document html lui même.


Dans quel document se trouvent les balises link dont tu veux récupérer le contenu?

»» Je ne vois cependant pas quelle est la procédure à suivre, une fois le contenu des link récupérés grâce à getElementsByTagName(), afin de modifier la valeur des boutons de navigation dynamiquement en tenant compte du contenu des link de chaque page.


Je ne me suis plus occupé du DOM depuis longtemps, mais presque tout est possible. Donne nous un peu plus de détails, je poserai ta question dans le forum allemand et te ferai part des résultats. Si tu parles anglais, tu peux naturellement poser ta question toi-même sur le forum allemand (sans oublier de donner le résultat ici pour nos lecteurs)...

MS de Francfort sur le Main,
Patrick


 

vers le hautvers le bas 

(JAVASCRIPT) Barre d'outils en js.

Le message suivant est de: Julien, Adresse électronique johnie@beedul.net, 15. 04. 2004, 17:53
http://www.beedul.net

Bonjour,

Merci de vous intéresser à mon problème :)
C'est vrai qu'Opéra et Mozilla gèrent bien ces balises link, mais mon projet sera évalué sur IE malheureusement...
Les balises link dont je souhaite récupérer le contenu se trouvent uniquement dans le document du bas où se trouve le document html principal.
Pour détailler plus précisement, voici comment doit fonctionner le site :
- la frame de gauche contient un menu qui permet d'afficher diverses pages html dans la frame principale ou frame du bas.
- la frame du haut contient un menu de navigation avec 2 types de navigation. D'une part des boutons retour et suivant qui remplissent le même rôle que les boutons du navigateur, pas de problème pour ceux-là. D'autre part, des boutons "page précédente" et "page suivante" permettent d'afficher dans la frame principale les diverses pages html évoquées plus haut, mais cette fois-ci en respectant un ordre précis défini dans les relations (attribut rel) previous(page précédente), next (page suivante) des balises link du document affiché dans la frame principale.
Mon problème se situe donc au niveau de la récupération des contenus des balises link, afin que les liens "page précédente" et "page suivante" puisse changer dynamiquement selon la page affichée dans la frame principale.

J'espère que j'ai pu me faire comprendre, et j'aurai souhaité poser ces questions sur le forum allemand, malheureusement je pense que mon anglais n'est pas assez évolué pour me faire comprendre clairement, déjà que ce n'est pas une mince affaire en français :)

Encore merci,

Cordialement.


 
vers le hautvers le bas 

(JAVASCRIPT) Barre d'outils en js.

Le message suivant est de: Bartouille, Adresse électronique bertrand.wattel@free.fr, 17. 04. 2004, 22:20
http://mythes.foret.free.fr

»» Bonjour,
Bonjour !

Mettons que ton cadre de la barre de navigation s'appelle 'navbar' et ton cadre d'affichage du doc HTML 'main'.
1/ D'abord une petite astuce pour gagner du temps, dans tes docs HTML, rajoute une propriété ID à tes <LINK>, comme ceci :
<HEAD>
<link id="next" rel="next" href="lille.htm" title="Page suivante">
<link id="previous" rel="previous" href="marseille.htm" title="Page précédente">
...
On peut ainsi accéder très rapidement au nom de la page grâce à document.all.next.href ou document.all.previous.href

2/ Le doc HTML du cadre navbar doit ressembler à peu près à ceci
...
<BODY>
<FORM>
<INPUT TYPE="button" VALUE="Avant" ID="previous" ONCLICK="parent.main.document.URL=this.href" href=""><BR>
<INPUT TYPE="button" VALUE="Avant" ID="next" ONCLICK="parent.main.document.URL=this.href" href="">
</FORM>
...
Le problème est de toute façon identique quelque soit le mode de lien choisi (un bouton, une image, un lien,...)
Il faut :
- Identifier grâce à une propriété ID
- Définir un comprtement grâce à ONCLICK. En l'occurence, je change l'adresse de la page dans le cadre main en lui donnant la valeur de href, autre propriété du bouton. J'ai choisi cette solution car elle permet un code plus compact, car :

3/ Danc chacun de tes docs HTML après les <LINK>, tu rajoute un petit script :
<SCRIPT>
<!--
function maj_navbar()
{
 if (document.all.next.href) parent.navbar.document.all.next.href=document.all.next.href;
 if(document.all.previous.href) parent.navbar.document.all.previous.href=document.all.previous.href;
}
-->
</SCRIPT>
que tu appelles lors du chargement de la page avec <BODY ONLOAD="maj_navbar()">
Que se passe-t'il ? Quand la page se charge, on récupère la valeur des <LINK> et on l'affecte à la propriété href des boutons de la barre de navigation. Pour ne pas planter la navigation, si le href du LINK est vide, je ne mets pas le bouton à jour, mais on peux imaginer beaucoup de chose.
Donc, en cliquant sur notre bouton, l'internaute naviguera entre les pages selon le schéma prévu par les balises <LINK>

Voilà, j'espère que cela t'aidera. J'ai bidouillé quelques pages en vitesse pour tester le bazar, si tu veux, je te les envoie par mail.

Mais, si je peux me permettre un avis, la méthode retenue est lourde. Mieux vaudrait stocker le plan directement dans la page de la barre de navigation. Pourquoi ? Si tu veux changer l'ordre de navigation, il te faut aller modifier au moins 3 pages. Si le plan est stocké dans la barre de navigation, il est plus facile de le modifier.

Bon courage,

Bartouille


 
vers le hautvers le bas 

(JAVASCRIPT) Barre d'outils en js.

Le message suivant est de: Julien, Adresse électronique johnie@beedul.net, 18. 04. 2004, 11:54
http://www.beedul.net

Merci pour toutes ces infos et ces codes, je pense avoir tout compris :)
Je suis d'accord sur le fait qu'il vaudrait mieux stocker le plan dans la barre de navigation, malheureusement j'ai cette contrainte dans l'énoncé du projet de stocker ce plan dans le document principal.
Merci encore,

Cordialement,

Julien.


 
vers le haut

© 1998-2004 Adresse électronique selfhtml@fr.selfhtml.org