function htmlFAQToFAQJson(accordionHtml) { const accordionItems = accordionHtml.querySelectorAll('.accordion-item'); const faqItems = Array.from(accordionItems).map(item => { const question = item.querySelector('.accordion-item-title')?.textContent.trim().replace(/\s+/g, ' ') || ''; const contentEl = item.querySelector('.accordion-item-content'); const textParts = []; if (contentEl) { contentEl.childNodes.forEach(node => { if (node.nodeType === Node.ELEMENT_NODE) { if (node.tagName === 'P' || node.tagName === 'SPAN') { const text = node.textContent.trim(); if (text) textParts.push(text); } else if (node.tagName === 'UL' || node.tagName === 'OL') { const listItems = Array.from(node.querySelectorAll('li')).map(li => `• ${li.textContent.trim()}`); textParts.push(...listItems); } } else if (node.nodeType === Node.TEXT_NODE) { const text = node.textContent.trim(); if (text) textParts.push(text); } }); } const answer = textParts.join('\n'); return { "@type": "Question", "name": question, "acceptedAnswer": { "@type": "Answer", "text": answer } }; }); return { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": faqItems }; } function htmlFAQToScriptBalise() { console.log("test1"); const faq = document.querySelector('div.accordion'); if (faq) { console.log("test2"); const FAQjson = htmlFAQToFAQJson(faq); if (FAQjson) { console.log("test3"); const newScript = document.createElement('script'); newScript.type = 'application/ld+json'; newScript.textContent = JSON.stringify(FAQjson, null, 2); document.body.insertBefore(newScript, document.body.firstChild); } } } window.addEventListener("STFAQLoaded", htmlFAQToScriptBalise());
window.addEventListener("STFAQLoaded", console.log("test"));