如果文章中没有标题属性,则不创建TOC

This commit is contained in:
Meekdai 2024-07-29 10:15:23 +08:00
parent f733212c4b
commit 15d5ea1e7d

View File

@ -2,9 +2,15 @@ function createTOC() {
var tocElement = document.createElement('div');
tocElement.className = 'toc';
var contentContainer = document.getElementById('content');
contentContainer.prepend(tocElement);
const headings = contentContainer.querySelectorAll('h1, h2, h3, h4, h5, h6');
if (headings.length === 0) {
return; // 如果没有标题元素则不创建TOC
}
tocElement.insertAdjacentHTML('afterbegin', '<div class="toc-title">文章目录</div>');
headings.forEach(heading => {
if (!heading.id) {
heading.id = heading.textContent.trim().replace(/\s+/g, '-').toLowerCase();
@ -16,9 +22,10 @@ function createTOC() {
link.style.paddingLeft = `${(parseInt(heading.tagName.charAt(1)) - 1) * 10}px`;
tocElement.appendChild(link);
});
tocElement.insertAdjacentHTML('beforeend', '<a href="#" class="toc-end" onclick="window.scrollTo({top:0,behavior: \'smooth\'});">Top</a>');
}
tocElement.insertAdjacentHTML('beforeend', '<a href="#" class="toc-end" onclick="window.scrollTo({top:0,behavior: \'smooth\'});">Top</a>');
contentContainer.prepend(tocElement);
}
document.addEventListener("DOMContentLoaded", function() {
createTOC();