InsertToc
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.
<script type="text/javascript" src="https://code.jquery.com/jquery-latest.min.js"></script> <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.
$(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:
$(document).ready(function() { $(document).insertToc(); // same as $(document).insertToc({at: 'h1:first', position: 'after'}); });
Inhaltsverzeichnis vor der ersten Überschrift 2. Ordnung (<h2>
) einfügen:
$(document).ready(function() { $(document).insertToc({at: 'h2:first', position: 'before'}); });
Inhaltsverzeichnis als erstes Element in den Container mit der id
'container'
einfügen:
$(document).ready(function() { $(document).insertToc({at: '#container', position: 'intoAsFirst'}); });
Inhaltsverzeichnis als letztes Element in den Container mit der id
'container'
einfügen:
$(document).ready(function() { $(document).insertToc({at: '#container', position: 'intoAsLast'}); });
Inhaltsverzeichnis nur auf den Seiten einfügen, deren <body>
die Klasse hastoc
hat:
$(document).ready(function() { $('body.hastoc').insertToc(); });
Nur Überschriften innerhalb des Containers mit der CSS-Klasse 'mysection'
im Inhaltsverzeichnis berücksichtigen:
$(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)