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