Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d874fe4274 | |||
| c790a1c312 | |||
| 7e757bbb6a |
@@ -60,10 +60,44 @@ Contao 5 – Frontend Module Template
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="module">
|
||||
import MeiliSearch from 'https://cdn.jsdelivr.net/npm/meilisearch@latest/dist/bundles/meilisearch.esm.js';
|
||||
<script>
|
||||
(function () {
|
||||
const CDN_URLS = [
|
||||
'https://cdn.jsdelivr.net/npm/meilisearch@0.39.0/dist/bundles/meilisearch.umd.min.js',
|
||||
'https://unpkg.com/meilisearch@0.39.0/dist/bundles/meilisearch.umd.min.js'
|
||||
];
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
function loadClient(urls, onDone) {
|
||||
if (typeof MeiliSearch !== 'undefined') {
|
||||
onDone(true, null);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!urls.length) {
|
||||
onDone(false, 'Alle CDN-Quellen fehlgeschlagen (mögliche CSP-Blockierung von script-src).');
|
||||
return;
|
||||
}
|
||||
|
||||
const url = urls.shift();
|
||||
const script = document.createElement('script');
|
||||
script.src = url;
|
||||
script.async = true;
|
||||
script.crossOrigin = 'anonymous';
|
||||
|
||||
script.onload = () => {
|
||||
if (typeof MeiliSearch !== 'undefined') {
|
||||
onDone(true, null);
|
||||
} else {
|
||||
loadClient(urls, onDone);
|
||||
}
|
||||
};
|
||||
|
||||
script.onerror = () => loadClient(urls, onDone);
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
|
||||
function initSearch() {
|
||||
|
||||
const wrapper = document.querySelector('.meilisearch-search');
|
||||
if (!wrapper) return;
|
||||
@@ -96,6 +130,10 @@ Contao 5 – Frontend Module Template
|
||||
input.value = '';
|
||||
results.innerHTML = '';
|
||||
clear.classList.add('is-hidden');
|
||||
|
||||
// ✅ WICHTIG: Suchmodus verlassen
|
||||
document.body.classList.remove('search-active');
|
||||
|
||||
input.focus();
|
||||
});
|
||||
|
||||
@@ -217,7 +255,19 @@ Contao 5 – Frontend Module Template
|
||||
results.appendChild(node);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
loadClient([...CDN_URLS], (ok, reason) => {
|
||||
if (!ok) {
|
||||
console.error('[Meilisearch] Browser client konnte nicht geladen werden. ' + reason);
|
||||
return;
|
||||
}
|
||||
|
||||
initSearch();
|
||||
});
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
{% endblock %}
|
||||
<!-- indexer::continue -->
|
||||
Reference in New Issue
Block a user