IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Fonction javascript de sommaire dynamique automatique


Sujet :

JavaScript

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut Fonction javascript de sommaire dynamique automatique
    Bonjour,

    J'ai une fonction javascript (qui fonctionne), elle permet de faire un sommaire automatique en se basant sur les titres et les sous-titres (h1 et h2).

    J'aimerais l'adapter pour qu'elle fonctionne jusqu'au h6.

    Voici la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    function numerotation_automatique() {
    	var numParagraphe=1;
    	var numSsParagraphe = 1;
    	le_sommaire = document.getElementById("sommaire");
    	regex_br = /<br ?\/?>/g;
     
    	sommaire="";
    	mode="H1";
    	for (i=0; i<document.getElementsByTagName("*").length; i++)
    	{
    		balise = document.getElementsByTagName("*")[i];
    		titre = balise.innerHTML;
    		if (balise.tagName=="H1")
    		{
    			if (mode=="H2") sommaire = sommaire + "</ul>\n";
    			if (le_sommaire)  sommaire = sommaire + "<li><a href=#ch" + numParagraphe + ">" + titre.replace(regex_br, ' ') + "</a></li>\n";
    			document.getElementsByTagName("*")[i].innerHTML = "<a name=ch" + numParagraphe + "></a><table><tr><th>" + numParagraphe++ + "</th><td>" + titre + "</td></tr></table>" ;
    			i += 4;
    			mode = balise.tagName;
    		}
    		else if (balise.tagName=="H2")
    		{
    			if (mode=="H1") sommaire = sommaire + "<ul>";
    			sommaire = sommaire + "<li><a href=#chSs" + numSsParagraphe + ">" + titre + "</a></li>\n";
    			document.getElementsByTagName("*")[i].innerHTML = "<a name=chSs" + numSsParagraphe++ + "></a>" + titre ;
    			mode = balise.tagName;
    		}
    	}
    	if (mode=="H2") sommaire = sommaire + "</ul>";
    	le_sommaire.innerHTML = "<div class='sommaire'><h3><span>Sommaire...</span></h3><ul>" + sommaire + "</ul></div>";
    }
    Pouvez-vous m'aider pour l'adapter SVP ? Est-ce qu'il faut rajouter des tests if jusqu'à h6 comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    else if (balise.tagName=="H3")
    		{
    			if (mode=="H2") sommaire = sommaire + "<ul>";
    			sommaire = sommaire + "<li><a href=#chSs" + numSsParagraphe + ">" + titre + "</a></li>\n";
    			document.getElementsByTagName("*")[i].innerHTML = "<a name=chSs" + numSsParagraphe++ + "></a>" + titre ;
    			mode = balise.tagName;
    		}
    else if (balise.tagName=="H4")
    		{
    			if (mode=="H3") sommaire = sommaire + "<ul>";
    			sommaire = sommaire + "<li><a href=#chSs" + numSsParagraphe + ">" + titre + "</a></li>\n";
    			document.getElementsByTagName("*")[i].innerHTML = "<a name=chSs" + numSsParagraphe++ + "></a>" + titre ;
    			mode = balise.tagName;
    		}
    else if (balise.tagName=="H5")
    		{
    			if (mode=="H4") sommaire = sommaire + "<ul>";
    			sommaire = sommaire + "<li><a href=#chSs" + numSsParagraphe + ">" + titre + "</a></li>\n";
    			document.getElementsByTagName("*")[i].innerHTML = "<a name=chSs" + numSsParagraphe++ + "></a>" + titre ;
    			mode = balise.tagName;
    		}
    else if (balise.tagName=="H6")
    		{
    			if (mode=="H5") sommaire = sommaire + "<ul>";
    			sommaire = sommaire + "<li><a href=#chSs" + numSsParagraphe + ">" + titre + "</a></li>\n";
    			document.getElementsByTagName("*")[i].innerHTML = "<a name=chSs" + numSsParagraphe++ + "></a>" + titre ;
    			mode = balise.tagName;
    		}
    ?

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 079
    Points : 44 660
    Points
    44 660
    Par défaut
    Bonjour,
    tu peux faire cela dans une boucle, indice regarde ce qui change dans tes conditions et factorise.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut
    Peux-tu me faire un exemple STP ?

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut
    Je mets le sujet en "RESOLU".

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fonction javascript dynamique
    Par agencep dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/02/2008, 14h18
  2. [AJAX] lien généré dynamiquement avec appel de fonction javascript
    Par karimphp dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/11/2007, 10h23
  3. fonction javascript d'une page générée dynamiquement
    Par allserv dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/10/2007, 16h03
  4. Réponses: 3
    Dernier message: 16/05/2007, 10h03
  5. variable dynamique dans une fonction javascript
    Par Shivaneth dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/04/2005, 15h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo