// ============================================ // 百度搜索工具 - 核心逻辑 // ============================================ // 百度搜索 URL 前缀 const SEARCH_URL = 'https://www.baidu.com/s?wd='; // DOM 元素 const searchInput = document.getElementById('searchInput'); const searchBtn = document.getElementById('searchBtn'); const hotTags = document.querySelectorAll('.hot-tag'); /** * 执行搜索:打开百度搜索结果页 * @param {string} keyword - 搜索关键词 */ function doSearch(keyword) { const trimmed = (keyword || '').trim(); if (!trimmed) { alert('请输入搜索关键词'); searchInput.focus(); return; } // 使用 encodeURIComponent 编码中文和特殊字符 const url = SEARCH_URL + encodeURIComponent(trimmed); // 在新标签页打开搜索结果 window.open(url, '_blank', 'noopener,noreferrer'); } /** * 从当前输入框获取关键词并搜索 */ function searchFromInput() { doSearch(searchInput.value); } // ============================================ // 事件绑定 // ============================================ // 点击搜索按钮 searchBtn.addEventListener('click', searchFromInput); // 输入框按回车键 searchInput.addEventListener('keydown', (e) => { if (e.key === 'Enter') { searchFromInput(); } }); // 热门搜索标签点击 hotTags.forEach((tag) => { tag.addEventListener('click', () => { const word = tag.dataset.word; searchInput.value = word; doSearch(word); }); }); // ============================================ // 支持从 URL 参数获取查询词(如 ?q=关键词) // 用于浏览器扩展或外部调用 // ============================================ (function initFromQuery() { const params = new URLSearchParams(window.location.search); const q = params.get('q'); if (q) { searchInput.value = q; // 自动聚焦但不自动搜索,交给用户确认 searchInput.focus(); } })();