当前位置:首页 > JavaScript

js 实现网页搜索

2026-03-16 03:28:15JavaScript

实现网页搜索功能

在JavaScript中实现网页搜索功能可以通过多种方式完成,包括前端本地搜索和调用后端API进行远程搜索。

本地搜索实现

使用纯前端技术实现本地搜索,适用于静态网页或数据量较小的场景:

function localSearch(query, elements) {
  return elements.filter(element => {
    return element.textContent.toLowerCase().includes(query.toLowerCase());
  });
}

const searchInput = document.getElementById('search-input');
const items = Array.from(document.querySelectorAll('.searchable-item'));

searchInput.addEventListener('input', (e) => {
  const results = localSearch(e.target.value, items);
  items.forEach(item => item.style.display = 'none');
  results.forEach(result => result.style.display = 'block');
});

调用搜索引擎API

对于需要更强大搜索能力的场景,可以集成第三方搜索引擎API:

async function searchWithAPI(query) {
  const API_KEY = 'YOUR_API_KEY';
  const url = `https://www.googleapis.com/customsearch/v1?q=${encodeURIComponent(query)}&key=${API_KEY}`;

  try {
    const response = await fetch(url);
    const data = await response.json();
    return data.items || [];
  } catch (error) {
    console.error('Search error:', error);
    return [];
  }
}

document.getElementById('search-btn').addEventListener('click', async () => {
  const query = document.getElementById('search-input').value;
  const results = await searchWithAPI(query);
  displayResults(results);
});

模糊搜索实现

实现更智能的模糊搜索功能:

function fuzzySearch(query, items) {
  const regex = new RegExp(query.split('').join('.*'), 'i');
  return items.filter(item => regex.test(item.text));
}

搜索结果高亮显示

对匹配的搜索结果进行高亮处理:

function highlightText(text, query) {
  const regex = new RegExp(`(${query})`, 'gi');
  return text.replace(regex, '<span class="highlight">$1</span>');
}

搜索性能优化

对于大数据量搜索,考虑性能优化:

js 实现网页搜索

// 使用Web Worker进行后台搜索
const searchWorker = new Worker('search-worker.js');

searchWorker.onmessage = function(e) {
  displayResults(e.data);
};

document.getElementById('search-input').addEventListener('input', (e) => {
  searchWorker.postMessage(e.target.value);
});

以上方法可以根据具体需求组合使用,构建适合不同场景的网页搜索功能。对于更复杂的搜索需求,建议结合后端服务实现。

标签: 网页搜索js
分享给朋友:

相关文章

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 使用JavaScript实现拖拽功能需要监听鼠标事件,包括mousedown、mousemove和mouseup。以下是实现的基本逻辑: const draggableEleme…

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <…

js实现隐藏div

js实现隐藏div

隐藏div的几种方法 使用JavaScript隐藏div元素可以通过多种方式实现,以下是几种常见的方法: 方法一:修改style.display属性 将div的display属性设置为"none"…