Advertisement
Igor150195

search

Feb 26th, 2025
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <script>
  2. document.addEventListener('DOMContentLoaded', function () {
  3.     $('.ajax-search-input').on('keyup', function () {
  4.         var query = $(this).val();
  5.  
  6.         const pathname = location.pathname;
  7.         const languages = ['/nl', '/fr', '/es', '/gb'];
  8.         let searchUrl = '/search?query=';
  9.  
  10.         const languagePrefix = languages.find(lang => pathname.includes(lang));
  11.  
  12.         if (languagePrefix) {
  13.             searchUrl = `${languagePrefix}${searchUrl}`;
  14.         }
  15.  
  16.         if (query.length >= 3) {
  17.             $.ajax({
  18.                 url: searchUrl + query,
  19.                 success: function (response) {
  20.                     var searchResults = $(response).find('.search-result-link');
  21.  
  22.                     if (searchResults.length > 0) {
  23.                         var listHtml = '<div class="link-list">';
  24.                         searchResults.each(function () {
  25.                             var link = $(this).attr('href');
  26.                             var title = $(this).find('.search-result-title').text();
  27.                             var highlightedTitle = title.replace(new RegExp(query, 'gi'), '<span class="highlight">$&</span>');
  28.                             listHtml += '<div class="link-list-item subtitle-2"><a href="' + link + '">' + highlightedTitle + '</a></div>';
  29.                         });
  30.                         listHtml += '</div>';
  31.  
  32.                         $('.search-ajax-data').html(listHtml).addClass('show-block');
  33.                     } else {
  34.                         $('.search-ajax-data').empty().removeClass('show-block');
  35.                     }
  36.                 },
  37.                 error: function (xhr, status, error) {
  38.                     console.error('AJAX Error: ' + status, error);
  39.                 }
  40.             });
  41.         } else {
  42.             $('.search-ajax-data').empty().removeClass('show-block');
  43.         }
  44.     });
  45.  
  46.     $(document).on('click', function(e){
  47.         if (!$(e.target).closest('.ajax-search-body').length) {
  48.             $('.search-ajax-data').removeClass('show-block');
  49.         }
  50.     });
  51. });
  52. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement