Ziel
Für die Überschriften einer Seite soll automatisch ein Inhaltsverzeichnis mit Sprungmarken (Links) zu den Überschriften eingefügt werden.

Lösung
InsertToc ist ein schlankes jQuery-Plugin, das ein solches verlinktes Inhaltsverzeichnis für die Überschriften 2. Ordnung (<h2>
) generiert und an die gewünschte Position einfügt.
Einbindung
Um InsertToc zu verwenden, müssen jQuery und die inserttoc.min.js in der Seite eingebunden sein.
1 2 | <script type= "text/javascript" src= "js/inserttoc.min.js" ></script> |
Dann muss das Skript nur noch aufgerufen werden. Das Inhaltsverzeichnis wird sinnigerweise nur eingefügt, wenn es mehr als eine <h2>
gibt. Folgender Standard-Aufruf fügt das Inhaltsverzeichnis nach der ersten <h1>
im Dokument ein.
1 2 3 | $(document).ready( function () { $(document).insertToc(); }); |
Konfiguration
Folgende Optionen können InsertToc mitgegeben werden. Diese überschreiben dann die Default-Eigenschaften.
Option | Beschreibung | Default-Wert |
---|---|---|
at |
Der Selektor des Elements, bei dem das Inhaltsverzeichnis eingefügt werden soll. | 'h1:first' |
position |
Wo das Inhaltsverzeichnis in Relation zum at -Element eingefügt werden soll. Mögliche Werte: 'after' | 'before' | 'intoAsFirst' | 'intoAsLast' |
'after' |
Wird InsertToc auf einem anderem Element als document
aufgerufen, werden nur Überschriften in das Inhaltsverzeichnis aufgenommen, die zu diesem Element gehören (siehe Beispiele).
Beispiele
Inhaltsverzeichnis nach der Überschrift 1. Ordnung (<h1>
) einfügen:
1 2 3 4 | $(document).ready( function () { $(document).insertToc(); // same as $(document).insertToc({at: 'h1:first', position: 'after'}); }); |
Inhaltsverzeichnis vor der ersten Überschrift 2. Ordnung (<h2>
) einfügen:
1 2 3 | $(document).ready( function () { $(document).insertToc({at: 'h2:first' , position: 'before' }); }); |
Inhaltsverzeichnis als erstes Element in den Container mit der id
'container'
einfügen:
1 2 3 | $(document).ready( function () { $(document).insertToc({at: '#container' , position: 'intoAsFirst' }); }); |
Inhaltsverzeichnis als letztes Element in den Container mit der id
'container'
einfügen:
1 2 3 | $(document).ready( function () { $(document).insertToc({at: '#container' , position: 'intoAsLast' }); }); |
Inhaltsverzeichnis nur auf den Seiten einfügen, deren <body>
die Klasse hastoc
hat:
1 2 3 | $(document).ready( function () { $( 'body.hastoc' ).insertToc(); }); |
Nur Überschriften innerhalb des Containers mit der CSS-Klasse 'mysection'
im Inhaltsverzeichnis berücksichtigen:
1 2 3 | $(document).ready( function () { $( '.mysection' ).insertToc(); }); |
Downloads
- InsertToc-Source als JS-Datei (YUI-komprimiert, ca. 1 KB)
- InsertToc-Source und Demo als ZIP (ca. 4 KB)