Documentation Index
Fetch the complete documentation index at: https://docs.replied.dk/llms.txt
Use this file to discover all available pages before exploring further.
JavaScript API
Widgetten eksponerer en global RepliedWidget objekt som I kan bruge til at kontrollere den programmatisk.
RepliedWidget er tilgængelig efter scriptet er loaded. Brug window.addEventListener('replied:ready', ...) for at sikre det.
Metoder
// Åbn formularen
RepliedWidget.open();
// Luk formularen
RepliedWidget.close();
// Toggle (åbn hvis lukket, luk hvis åben)
RepliedWidget.toggle();
Pre-udfyld felter
// Udfyld felter inden brugeren åbner formularen
RepliedWidget.prefill({
name: 'Lars Hansen',
email: 'lars@firma.dk',
subject: 'Spørgsmål om ordre #4521',
message: 'Hej, jeg har et spørgsmål om min ordre...',
});
// Åbn med pre-udfyldte felter
RepliedWidget.prefill({ email: brugerEmail });
RepliedWidget.open();
// Skjul widgetten helt (knap + formular)
RepliedWidget.hide();
// Vis widgetten igen
RepliedWidget.show();
// Ryd alle felter
RepliedWidget.reset();
Events
Lyt på widget-events for at integrere med jeres egne systemer:
// Widgetten er loaded og klar
window.addEventListener('replied:ready', () => {
console.log('Widget er klar');
});
// Formularen blev åbnet
window.addEventListener('replied:open', () => {
console.log('Formular åbnet');
});
// Formularen blev lukket
window.addEventListener('replied:close', () => {
console.log('Formular lukket');
});
// Henvendelse sendt succesfuldt
window.addEventListener('replied:submit', (event) => {
console.log('Henvendelse sendt:', event.detail);
// event.detail indeholder: { id, name, email, message }
});
// Fejl ved afsendelse
window.addEventListener('replied:error', (event) => {
console.error('Fejl:', event.detail.error);
});
Eksempler
<button onclick="RepliedWidget.open()">
Kontakt os
</button>
Åbn med kontekst fra siden
// Når en bruger klikker "Hjælp med dette produkt"
function kontaktOmProdukt(produktNavn) {
RepliedWidget.prefill({
subject: `Spørgsmål om ${produktNavn}`,
message: `Hej, jeg har et spørgsmål om ${produktNavn}...`,
});
RepliedWidget.open();
}
<button onclick="kontaktOmProdukt('Premium-pakken')">
Spørgsmål om dette produkt
</button>
Track submissions i analytics
window.addEventListener('replied:submit', (event) => {
// Google Analytics 4
gtag('event', 'contact_form_submit', {
form_source: 'replied_widget',
});
// Meta Pixel
fbq('track', 'Lead');
// Custom tracking
fetch('/api/track', {
method: 'POST',
body: JSON.stringify({ event: 'contact_submit', email: event.detail.email }),
});
});
// Skjul på login/signup sider
window.addEventListener('replied:ready', () => {
const path = window.location.pathname;
if (path.startsWith('/login') || path.startsWith('/signup')) {
RepliedWidget.hide();
}
});
Pre-udfyld fra logged-in bruger
window.addEventListener('replied:ready', () => {
// Hent brugerdata fra jeres app
const user = getCurrentUser();
if (user) {
RepliedWidget.prefill({
name: user.name,
email: user.email,
});
}
});
Tilgængelighed
Widgetten er bygget med tilgængelighed i tankerne:
- Fuld keyboard-navigation
- ARIA-labels på alle interaktive elementer
- Focus trap når formularen er åben
- Respekterer
prefers-reduced-motion