FAQ
Voice Search #
Denne kode er ment som et udgangspunkt, der kan tilpasses efter dine behov.
Mange browsere understøtter stemmesøgning indbygget, hvilket gør det ganske ligetil for udviklere at integrere det i Clerk.io’s søgefunktioner.
Nedenfor er et eksempel på et script, der kan bruges til at transskribere tekst ved hjælp af en mikrofon. Specifikt indsætter det tekst i Clerk.io’s Omnisearch inputfelt.
Det tilføjer en knap, som, når den klikkes på, aktiverer browserens stemmegenkendelses-API og indsætter teksten i inputfeltet.
Du kan tilføje dette script som en kodeblok til et design editor-design for en Instant Search eller direkte i et codedesign for Instant Search eller Omnisearch.
<button class="mic-button" onclick="startVoiceSearch()">🎙️</button>
<script>
function startVoiceSearch() {
if (!('webkitSpeechRecognition' in window)) {
alert("Your browser does not support voice recognition.");
return;
}
let recognition = new webkitSpeechRecognition();
recognition.lang = "en-US";
recognition.interimResults = false;
recognition.maxAlternatives = 1;
recognition.onstart = () => console.log("Listening...");
recognition.onerror = (event) => console.error("Speech Recognition Error:", event);
recognition.onend = () => console.log("Speech recognition ended.");
recognition.onresult = function(event) {
let transcript = event.results[0][0].transcript;
updateSearchInput(transcript);
};
recognition.start();
}
function updateSearchInput(text) {
let input = document.getElementById("clerk-omnisearch-input");
input.value = text;
// Trigger events for search to update properly
['input', 'change', 'keydown', 'keyup'].forEach(eventType => {
let event = new Event(eventType, { bubbles: true });
input.dispatchEvent(event);
});
console.log("Voice input added:", text);
}
</script>
## Vis et banner øverst i Omnisearch fra Sideresultater
Dette eksempel bruger Pages med type: "banner" og viser det første matchende banner over resultaterne. Tilpas HTML/CSS så det passer til dit design.
Du kan levere dynamiske kampagnebannere i Omnisearch ved at sende Pages med `type` sat til `banner`, og et `image`, der peger på dit banner-asset. Når en besøgende søger, og en matchende Page af denne type returneres, bliver designet vist øverst.
### 1) Opret banner Pages
- Sørg for, at din datasynkronisering inkluderer Pages. Se objektstrukturen i [Data Feeds › Pages](/integrations/any-webshop/data-feeds/#pages).
- For hvert kampagnebanner skal du sende en Page med mindst:
- `type`: `banner`
- `url`: Landings-URL for banneret
- `title`: Kort titel for tilgængelighed/alt-tekst
- `image`: Fuldt URL til bannerbilledet (JPG/PNG/WEBP)
- Tilføj relevante søgeord i `text` eller `keywords`, så Page matcher de ønskede søgninger
Eksempel på Page-objekt (uddrag):
```json
{
"id": 9876,
"type": "banner",
"url": "https://yourstore.com/campaigns/spring-sale",
"title": "Spring Sale – Op til 30% på Adidas",
"text": "spring sale adidas shoes sneakers trainers",
"image": "https://yourstore.com/cdn/banners/spring-sale-adidas.webp"
}
2) Vis banneret i dit Omnisearch-design #
Tilføj dette snippet nær toppen af dit Omnisearch-hovedlayout (codedesign). Det viser den første Page hvor type == "banner":
{% assign bannerShown = false %}
{% for page in pages %}
{% if page.type == "banner" and bannerShown == false %}
<a class="os-banner" href="{{ page.url }}" aria-label="{{ page.title }}">
<img src="{{ page.image }}" alt="{{ page.title }}" loading="lazy" />
</a>
{% assign bannerShown = true %}
{% endif %}
{% endfor %}
Minimal styling:
.os-banner {
display: block;
margin: 0 0 16px 0;
}
.os-banner img {
width: 100%;
height: auto;
border-radius: 8px;
display: block;
}
Bemærkninger #
- Ingen ekstra API-kald kræves; Omnisearch returnerer allerede
pages. Du skal blot filtrere eftertype. - Behold din almindelige Pages-sektion, hvis du ønsker det. Snippet ovenfor tilføjer kun et banner og skjuler ikke andre Pages.
- Sørg for, at dit Omnisearch-element returnerer nok
pages(f.eks. 6–10), så banner Pages kan inkluderes. Du kan justere dette i elementindstillingerne (f.eks.data-omni-search-pages).
Denne side er oversat af en hjælpsom AI, og der kan derfor være sproglige fejl. Tak for forståelsen.