Search

FAQ

De mest almindeligt stillede spørgsmål om 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 efter type.
  • 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.