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:
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:
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;
} |
?