<p>共搜索到 <span class='total-count'></span> 个项目:</p>
<div class='result'>
</div>
<div class='pagination'>
</div>
<script>
  const searchForm = document.querySelector('form');
  const resultContainer = document.querySelector('.result');
  const paginationContainer = document.querySelector('.pagination');
  const totalCountElement = document.querySelector('.total-count');

  searchForm.addEventListener('submit', async (event) => {
    event.preventDefault();
    const searchTerm = document.getElementById('search').value;
    const page = 1;
    const url = `https://api.github.com/search/repositories?q=${encodeURIComponent(searchTerm)}&page=${page}`;

    try {
      const response = await fetch(url);
      const data = await response.json();
      totalCountElement.textContent = data.total_count;
      resultContainer.innerHTML = '';
      paginationContainer.innerHTML = '';
      if (data.items.length > 0) {
        data.items.forEach(item => {
          resultContainer.innerHTML += `<p><a href='${item.html_url}' target='_blank'>${item.full_name}</a></p>
          <p>${item.description}</p>
          <hr>`;
        });
        const pages = Math.ceil(data.total_count / 30);
        if (pages > 1) {
          paginationContainer.innerHTML = '<a href='#' data-page='1'>首页</a>';
          for (let i = 1; i <= pages; i++) {
            paginationContainer.innerHTML += `<a href='#' data-page='${i}'>${i}</a>`;
          }
          paginationContainer.innerHTML += '<a href='#' data-page='${pages}'>尾页</a>';

          const paginationLinks = paginationContainer.querySelectorAll('a');
          paginationLinks.forEach(link => {
            link.addEventListener('click', async (event) => {
              event.preventDefault();
              const page = link.dataset.page;
              const url = `https://api.github.com/search/repositories?q=${encodeURIComponent(searchTerm)}&page=${page}`;
              try {
                const response = await fetch(url);
                const data = await response.json();
                resultContainer.innerHTML = '';
                data.items.forEach(item => {
                  resultContainer.innerHTML += `<p><a href='${item.html_url}' target='_blank'>${item.full_name}</a></p>
                  <p>${item.description}</p>
                  <hr>`;
                });
              } catch (error) {
                console.error(error);
              }
            });
          });
        }
      } else {
        resultContainer.innerHTML = '<p>未找到任何项目。</p>';
      }
    } catch (error) {
      console.error(error);
      resultContainer.innerHTML = '<p>搜索失败,请稍后重试。</p>';
    }
  });
</script>
火神项目搜索 - 查找 GitHub 上的开源项目

原文地址: https://www.cveoy.top/t/topic/m4ak 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录