В этой статье я расскажу о компактном и функциональном JavaScript-скрипте для реализации поиска на сайте, разработанном для платформы uCoz. Этот скрипт позволяет пользователям искать материалы по ключевому слову, отображать результаты в удобном окне и динамически менять иконки в зависимости от состояния поиска. Код модернизирован с использованием современного JavaScript (ES6+), что делает его читаемым, надёжным и легким для адаптации под ваши нужды.

Установка:
В Вид материалов каталога файлов тегу присвойте класс class="entryLink", как показано в примере

Код
<a href="$ENTRY_URL$" class="entryLink">$TITLE$</a>


На страницу Страница добавления/редактирования материала поместите данный скрипт

Код
<script type="text/javascript">
// Базовый URL для ресурсов uCoz
const COPYRIGHT_URL = 'https://htmlstart.ucoz.net';
const ICONS = ['error', 'ok', 'search', 'load'];  
const search = {
  INPUT_SELECTOR: '#addEntForm input[name="title"]',

  // Запуск поиска
  start() {
  const $input = $(search.INPUT_SELECTOR);
  const query = $input.val();

  if (!query.trim() || query.length < 3) {
  document.getElementById('srchIcon').src = `${COPYRIGHT_URL}/upload/icons/${ICONS[0]}.png`;
   
  if (typeof _uWnd !== 'undefined') {
  _uWnd.alert('Название слишком короткое', 'Ошибка', {
  w: 200,
  h: 70,
  tm: 2500,
  });
  }

  setTimeout(() => {
  document.getElementById('srchIcon').src = `${COPYRIGHT_URL}/upload/icons/${ICONS[2]}.png`;
  }, 2500);
  return;
  }

  document.getElementById('srchIcon').src = `${COPYRIGHT_URL}/upload/icons/${ICONS[3]}.gif`;

  $.post(
  '/load/',
  { query, a: 2 },
  (response) => {
  const $links = $('.entryLink', response);

  // Если результатов нет
  if (!$links.length) {
  document.getElementById('srchIcon').src = `${COPYRIGHT_URL}/upload/icons/${ICONS[2]}.png`;
   
  if (typeof _uWnd !== 'undefined') {
  _uWnd.alert('Поиск не дал результатов', 'Нет результатов', {
  w: 200,
  h: 70,
  tm: 2500,  
  });
  }
   
  setTimeout(() => {
  document.getElementById('srchIcon').src = `${COPYRIGHT_URL}/upload/icons/${ICONS[2]}.png`;
  }, 2000);  

  return;
  }

  document.getElementById('srchIcon').src = `${COPYRIGHT_URL}/upload/icons/${ICONS[1]}.png`;

  if (typeof _uWnd !== 'undefined') {
  const dims = _uWnd.getdims();
  const wWidth = 300;
  const wHeight = 200;
  const xPos = dims.clientW - wWidth - 5;
  const yPos = dims.clientH - wHeight - 5;

  new _uWnd(
  'likeThis',
  'Похожие материалы найдены',
  wWidth,
  wHeight,
  {
  min: 0,
  max: 0,
  x: xPos,
  y: yPos,
  alert: 1,
  autosize: 0,
  icon: `${COPYRIGHT_URL}/upload/icons/${ICONS[2]}.png`,
  fixed: 1,
  shadow: 1,
  resize: 0,
  nomove: 1,
  hidden: 0,
  notaskbar: 1,
  fadetype: 0,
  fadespeed: 0,
  fadeclosetype: 2,
  fadeclosespeed: 500,
  align: 'left',
  },
  `<fieldset><legend>${query}</legend><div id="likeThisContent"></div></fieldset>`
  );

  // Добавляем ссылки в окно результатов
  setTimeout(() => {
  $links.each((_, element) => {
  const href = $(element).attr('href');
  const text = $(element).html();
  document.getElementById('likeThisContent').innerHTML += `<a href="${href}" target="_blank" title="Откроется в новом окне">${text}</a><br>`;
  });
  }, 101);
  }

  setTimeout(() => {
  document.getElementById('srchIcon').src = `${COPYRIGHT_URL}/upload/icons/${ICONS[2]}.png`;
  }, 2000);
  }
  );
  },

  // Инициализация и отображение иконки
  show() {
  const icon = document.createElement('img');
  icon.style.border = '0';
  icon.style.paddingLeft = '3px';
  icon.style.verticalAlign = 'middle';
  icon.src = `${COPYRIGHT_URL}/upload/icons/${ICONS[2]}.png`;
  icon.id = 'srchIcon';
  icon.alt = 'Искать';
  icon.style.cursor = 'pointer';
  icon.title = 'Искать по названию';
  icon.addEventListener('click', this.start.bind(this));

  const $input = $(search.INPUT_SELECTOR);

  if ($input.length) {
  $input.css('maxWidth', '94%');
  const container = document.getElementById('ldM5') || $input.parent()[0];
  container.appendChild(icon);
  } else {
  console.error('Поле ввода для поиска не найдено по селектору:', search.INPUT_SELECTOR);
  }
  },
};

// Запускаем отображение иконки
if (typeof $ !== 'undefined') {
  search.show();
} else {
  console.error('jQuery не загружен. Скрипт поиска не может быть выполнен.');
}
//Разработчик by jaguar37rus, site htmlstart.ucoz.net
</script>


После всех продолженных действий загрузите папку с картинками к себе на сайт в корень сайта. И на этом получается всё, приятного использования
Скрипт-поиск похожих материалов ucoz при добавлении материала по клику.
Размер: 2.1 Kb

Комментарии

Минимальная длина комментария - 50 знаков. комментарии модерируются
Snoopak 1
01.10.2025, 19:12
Согласны? Да 1 Нет
Скрипт не рабочий. Проверяли перед публикацией?

Код
const icons = 'error', 'ok', 'search', 'load'];


нету начальной квадратной скобки [ из-за этого массив не рабочий.
---


Код
document.querySelector('#addEntForm inputname="title"]').value;


inputname="title"] - что за селектор DOM элемента? нужно input[name="title"]
---


Код
${copyright}/upload/icons/${icons0]}.png


icons0] - что это? для выбора из массива нужно так - icons[0] тоесть, название массива и в [] порядочный номер (индекс)
---
uWnd окно, что "Поиск не дал результатов" вообще не появляется.
jaguar37rus 2
01.10.2025, 19:46
Согласны? Да 0 Нет
привет да он был рабочий!!!! это Ucoz ебу.... с своим глюченым редактором. когда редактировал описание этот гад скобки по убирал.
jaguar37rus 3
01.10.2025, 19:58
Согласны? Да 0 Нет
А так спасибо все поправил!
Snoopak 4
01.10.2025, 20:03
Согласны? Да 1 Нет
Цитата
uWnd окно, что "Поиск не дал результатов" вообще не появляется.

А это?
jaguar37rus 5
01.10.2025, 20:15
Согласны? Да 0 Нет
Поправил )
HTMLSTART » Скрипты UCOZ » Каталога файлов » Скрипт-поиск похожих материалов ucoz при добавлении материала по клику.