Gebruik de globale window.CONSTELL API om de widget programmatisch te bedienen
De Constell Widget biedt een globale JavaScript API waarmee u de widget vanuit uw eigen code kunt bedienen. Deze API is beschikbaar zodra de widget is geladen en biedt volledige controle over de widget staat.
Het window.CONSTELL
object wordt
automatisch beschikbaar gesteld nadat het widget script is geladen. U hoeft geen extra configuratie
te doen.
De volgende methoden zijn beschikbaar via
window.CONSTELL
:
Opent de widget modal handmatig. Gebruik deze methode om de widget te openen via aangepaste knoppen of events.
// Syntax window.CONSTELL.open() // Use example const customButton = document.getElementById('my-custom-button'); customButton.addEventListener('click', () => { window.CONSTELL.open(); }); <button id="my-custom-button">Your custom text</button>
// Alternative use example <button id="my-custom-button" onclick="window.CONSTELL.open()">Your custom text</button>
Sluit de widget modal handmatig. Gebruik deze methode om de widget te sluiten via aangepaste knoppen of events.
// Syntax window.CONSTELL.close() // Use example const closeButton = document.getElementById('my-custom-button'); closeButton.addEventListener('click', () => { window.CONSTELL.close(); <button id="my-custom-button">Your custom text</button> });
// Alternative use example <button id="my-custom-button" onclick="window.CONSTELL.close()">Your custom text</button>
Schakelt tussen open en gesloten staat van de widget. Handig voor toggle-knoppen.
// Syntax window.CONSTELL.toggle() // Use example const toggleButton = document.getElementById('toggle-widget'); toggleButton.addEventListener('click', () => { window.CONSTELL.toggle(); }); <button id="my-custom-button">Your custom text</button>
// Alternative use example <button id="my-custom-button" onclick="window.CONSTELL.toggle()">Your custom text</button>
Navigeert naar een specifieke sectie binnen de widget. Als de widget nog niet open is, wordt deze automatisch geopend en vervolgens naar de opgegeven sectie genavigeerd.
// Syntax window.CONSTELL.navigate(target) // Parameters // target: string - De sectie waar naartoe genavigeerd moet worden // Mogelijke waarden: 'quote', 'self_quote', 'packages', 'appointment', 'contact_form' // Use examples // Navigeer naar offerte maken window.CONSTELL.navigate('quote'); // Navigeer naar zelf offerte maken window.CONSTELL.navigate('self_quote'); // Navigeer naar pakketten sectie window.CONSTELL.navigate('packages'); // Navigeer naar afspraak sectie window.CONSTELL.navigate('appointment'); // Navigeer naar contact formulier window.CONSTELL.navigate('contact_form');
// Gebruik met custom buttons const packagesButton = document.getElementById('show-packages'); packagesButton.addEventListener('click', () => { window.CONSTELL.navigate('packages'); }); const appointmentButton = document.getElementById('book-appointment'); appointmentButton.addEventListener('click', () => { window.CONSTELL.navigate('appointment'); }); <button id="show-packages">Bekijk Pakketten</button> <button id="book-appointment">Maak Afspraak</button>
// Alternative inline gebruik <button onclick="window.CONSTELL.navigate('packages')">Bekijk Pakketten</button> <button onclick="window.CONSTELL.navigate('appointment')">Maak Afspraak</button> <button onclick="window.CONSTELL.navigate('contact_form')">Contact</button>
Voor de 'packages' sectie kunt u een tweede parameter (payload) meegeven om de pakketten direct te filteren op basis van het event type. Dit opent de widget en toont alleen de relevante pakketten voor het opgegeven event type.
// Navigate with payload for filtering packages // Syntax: window.CONSTELL.navigate(target, payload) // Navigate to packages with event type filter window.CONSTELL.navigate('packages', {eventType: 'birthday'}); // Navigate to packages with different event types window.CONSTELL.navigate('packages', {eventType: 'babyshower'});
// Use with custom buttons for filtered package views const birthdayPackagesBtn = document.getElementById('birthday-packages'); birthdayPackagesBtn.addEventListener('click', () => { window.CONSTELL.navigate('packages', {eventType: 'birthday'}); }); const babyshowerPackagesBtn = document.getElementById('babyshower-packages'); babyshowerPackagesBtn.addEventListener('click', () => { window.CONSTELL.navigate('packages', {eventType: 'babyshower'}); }); <button id="birthday-packages">Verjaardag Pakketten</button> <button id="babyshower-packages">Babyshower Pakketten</button>
// Alternative inline gebruik met payload <button onclick="window.CONSTELL.navigate('packages', {eventType: 'birthday'})">Verjaardag Pakketten</button> <button onclick="window.CONSTELL.navigate('packages', {eventType: 'babyshower'})">Babyshower Pakketten</button>
Vervang de standaard widget knop door uw eigen design:
<!-- HTML -->
<button id="custom-booking-btn" class="my-custom-button">
Reserveer Nu
</button>
<!-- Widget zonder standaard knop (verborgen) -->
<constell-widget
venue="your-venue-id"
style="display: none;">
</constell-widget>
<script>
document.getElementById('custom-booking-btn').addEventListener('click', () => {
window.CONSTELL.open();
});
</script>
window.CONSTELL
beschikbaar is voordat u het gebruikt
Implementeer robuuste error handling voor uw custom implementaties:
<script> function safeWidgetOpen() { try { // Controleer of API beschikbaar is if (typeof window.CONSTELL === 'undefined') { console.warn('Constell Widget API is not available'); // Fallback actie, bijv. scroll naar contact sectie document.getElementById('contact-section').scrollIntoView(); return; } // Controleer of open functie bestaat if (typeof window.CONSTELL.open !== 'function') { console.warn('Constell Widget open method is not available'); return; } window.CONSTELL.open(); } catch (error) { console.error('Error opening Constell Widget:', error); // Fallback UI of alternatieve actie showFallbackContactForm(); } } function showFallbackContactForm() { // Implementeer fallback contact formulier alert('Widget is tijdelijk niet beschikbaar. Neem contact met ons op via telefoon of email.'); } </script>
In niet-ondersteunde browsers zal
window.CONSTELL
niet beschikbaar zijn. Implementeer altijd fallback opties voor deze
situaties.