addsearch-search-ui
Version:
JavaScript library to develop Search UIs for the web
71 lines (61 loc) • 2.32 kB
HTML
<html lang="en">
<head>
<title>AddSearch Search UI: Autocomplete with instant hits that load onfocus</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta charset="UTF-8">
<script src="https://cdn.jsdelivr.net/npm/addsearch-js-client@0.6/dist/addsearch-js-client.min.js"></script>
<script src="../../dist/addsearch-search-ui.min.js"></script>
<link rel="stylesheet" href="../../dist/addsearch-search-ui.min.css" />
</head>
<body>
<!-- Containers. Search UI components will be added inside these divs -->
<div id="searchfield"></div>
<section id="scrollable" style="max-height: 300px; max-width: 700px; overflow: auto;">
<div id="autocomplete"></div>
</section>
<script>
// AddSearch JS client with an example index. Get your own SITEKEY by signing up at www.addsearch.com
var client = new AddSearchClient('2c32bf3eb06b30af5f8208481aea3e8b');
// Search UI instance
var searchui = new AddSearchUI(client);
// Add components
searchui.searchField({
containerId: 'searchfield',
placeholder: 'Keyword..',
autofocus: false,
onfocusAutocompleteMatchAllQuery: true
});
var autocompleteClient = new AddSearchClient('2c32bf3eb06b30af5f8208481aea3e8b');
autocompleteClient.setPaging(1, 5, 'relevance', 'desc'); // Fetch 5 results by default
var autocompleteTemplate = `
<div class="addsearch-autocomplete" style="position: relative;">
{{#gt searchResults.results.length 0}}
<ul>
{{#each ../searchResults.results}}
<li>
<strong>{{title}}</strong><br />
{{{highlight}}}
</li>
{{/each}}
</ul>
{{/gt}}
</div>
`;
searchui.autocomplete({
containerId: 'autocomplete',
template: autocompleteTemplate,
infiniteScrollElement: document.querySelector('#scrollable'),
sources: [
{
type: AddSearchUI.AUTOCOMPLETE_TYPE.SEARCH,
client: autocompleteClient,
jsonKey: 'results'
}
]
});
// All components added. Start
searchui.start();
</script>
</body>
</html>