[前端] 为网站侧边栏添加搜索引擎模块
前言
最近想给我的个人网站侧边栏添加一个搜索引擎模块,可以引导用户帮助本站SEO优化(让用户可以通过点击搜索按钮完成一次对本人网站的搜索,从而实现对网站的搜索引擎优化)。
最开始,我只是想实现一个简单的百度搜索引擎模块。后来又考虑到搜索市场的多样性,加入更多搜索引擎让搜索框更有意思一些,于是决定让它随机选择百度或 Bing 进行搜索。最后甚至想同时达到优化两个搜索引擎的目的,实现一个搜索框同时打开百度和 Bing 的搜索结果页面。最终诞生了三个不同的版本,今天就来分享一下如何实现侧边栏搜索引擎模块。
效果展示

1. 百度引擎版
一个仅支持百度搜索引擎的搜索框。
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>百度搜索引擎示例</title><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"><style>:root {--theme: #44A8C7;--main: #333;--minor: #999;}.search-widget {padding: 15px;margin-bottom: 20px;max-width: 100%;}.search-widget .title {display: flex;align-items: center;font-size: 16px;color: var(--main);margin-bottom: 10px;}.search-widget .title i {font-size: 20px;margin-right: 10px;}.search-widget .title .text {font-weight: bold;}.search-widget .search-form {position: relative;border: 1px solid var(--theme);border-radius: 4px;overflow: hidden;}.search-widget .search-input {border: none;font-size: 14px;padding: 9px 8px;width: calc(100% - 80px);}.search-widget .search-submit {position: absolute;right: 2px;top: 50%;transform: translateY(-50%);border: none;background: var(--theme);color: #fff;padding: 6px 8px;cursor: pointer;border-top-right-radius: 4px;border-bottom-right-radius: 4px;}.search-widget .search-tip {font-size: 13px;color: var(--minor);margin-top: 5px;}</style>
</head>
<body><!-- 百度搜索引擎搜索框 --><section class="search-widget"><div class="title"><i class="fas fa-search"></i><span class="text">百度搜索引擎</span></div><div class="search-form"><form id="search-form" action="https://www.baidu.com/s" method="GET" target="_blank"><input class="search-input" type="text" name="wd" placeholder="Dangks' Blog" value="Dangks' Blog"><button class="search-submit" type="submit">搜索</button></form></div><div class="search-tip">🔎点击搜索,可帮助本站seo优化!</div></section>
</body>
</html>
2. 百度必应随机版
使用搜索框随机选择百度或 Bing 进行搜索。
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>随机搜索引擎示例</title><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"><style>/* 同上 */</style>
</head>
<body><!-- 随机搜索引擎搜索框 --><section class="search-widget"><div class="title"><i class="fas fa-search"></i><span class="text">随机搜索引擎</span></div><div class="search-form"><form id="search-form" action="" method="GET" target="_blank"><input class="search-input" type="text" name="query" placeholder="Dangks' Blog" value="Dangks' Blog"><button class="search-submit" type="submit">搜索</button></form></div><div class="search-tip">🔎点击搜索,可帮助本站seo优化!</div></section><script>document.getElementById('search-form').addEventListener('submit', function(event) {event.preventDefault();const queryInput = document.querySelector('.search-input');const query = queryInput.value;// 随机选择搜索引擎const engines = ['baidu', 'bing'];const randomEngine = engines[Math.floor(Math.random() * engines.length)];let searchUrl = '';if (randomEngine === 'baidu') {searchUrl = `https://www.baidu.com/s?wd=${encodeURIComponent(query)}`;} else if (randomEngine === 'bing') {searchUrl = `https://www.bing.com/search?q=${encodeURIComponent(query)}`;}window.open(searchUrl, '_blank');});</script>
</body>
</html>
3. 百度必应双重版
使用搜索框同时打开百度和 Bing 的搜索结果页面。
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>多搜索引擎示例</title><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"><style>/* 同上 */</style>
</head>
<body><!-- 多搜索引擎搜索框 --><section class="search-widget"><div class="title"><i class="fas fa-search"></i><span class="text">多搜索引擎</span></div><div class="search-form"><form id="search-form" action="" method="GET" target="_blank"><input class="search-input" type="text" name="query" placeholder="Dangks' Blog" value="Dangks' Blog"><button class="search-submit" type="submit">搜索</button></form></div><div class="search-tip">🔎点击搜索,可帮助本站seo优化!</div></section><script>document.getElementById('search-form').addEventListener('submit', function(event) {event.preventDefault();const queryInput = document.querySelector('.search-input');const query = queryInput.value;// 生成百度搜索 URLconst baiduUrl = `https://www.baidu.com/s?wd=${encodeURIComponent(query)}`;// 生成 Bing 搜索 URLconst bingUrl = `https://www.bing.com/search?q=${encodeURIComponent(query)}`;// 打开百度搜索结果页面window.open(baiduUrl, '_blank');// 延迟打开 Bing 搜索结果页面setTimeout(() => {window.open(bingUrl, '_blank');}, 100); // 延迟100毫秒});</script>
</body>
</html>
⚠ 提示:“双重版” 经过测试是可用的,但通常由于浏览器的安全机制,搜索引擎快速打开多个页面可能会被拦截,可以手动设置始终允许网站的窗口弹出。如下图所示:

总结
通过上述三个版本的代码,我们展示了如何为网站侧边栏添加一个多功能搜索引擎模块。无论是简单的百度搜索框,还是随机选择搜索引擎,或者是同时打开多个搜索引擎的结果页面,三种可能随你选择。希望这些示例能对您有所帮助!
相关文章:
[前端] 为网站侧边栏添加搜索引擎模块
前言 最近想给我的个人网站侧边栏添加一个搜索引擎模块,可以引导用户帮助本站SEO优化(让用户可以通过点击搜索按钮完成一次对本人网站的搜索,从而实现对网站的搜索引擎优化)。 最开始,我只是想实现一个简单的百度搜索…...
解决CORS (跨源资源共享) 错误
问题引入 前端代码 <template><div id"hello-vue" class"demo">{{ message }}</div><el-button type"primary" click"handleClick">我是一个按钮</el-button></template><script setup>//加…...
Redis 实现分布式缓存
一、引言 在当今互联网时代,随着业务的不断发展和用户量的持续增长,系统的性能和可扩展性成为了关键挑战。分布式缓存作为一种重要的技术手段,能够有效地缓解数据库压力、提高系统响应速度、增强系统的可扩展性。Redis 作为一种高性能的内存数…...
Chrome与火狐哪个浏览器的移动版本更流畅
在当今的数字化时代,移动设备已经成为我们生活中不可或缺的一部分。而浏览器作为我们访问互联网的重要工具,其性能和用户体验直接影响到我们的使用感受。本文将对比Chrome和火狐(Firefox)两款主流浏览器的移动版本,探讨…...
7篇Python爬虫实例,直接代码可运行,全网最全,注释超详细(适合收藏)——2、爬取图片信息。
7篇Python爬虫实例,可直接运行,适合收藏 python爬虫7篇实例,分七个文章进行发布;第二篇:爬取图片信息。 爬取图片信息,并将每张图片都下载下来。 爬虫主要三部分: 1、获取数据 2、数据解析 3、…...
25.停车场管理系统(基于web的Java项目)
目录 1.系统的受众说明 2.相关技术与方法 3.系统分析 3.1 可行性分析 3.1.1 技术可行性 3.1.2 经济可行性 3.1.3 操作可行性 3.2 需求分析 3.2.1 系统功能描述 3.2.2 用例图分析 4. 系统设计 4.1 系统类分析 5. 系统详细设计与实现 5.1 用户登录 5.2 系统信…...
展览搭建公司怎么跟展会主办打好交道
与展会主办打好交道的重要性 首先,我们得明白,展览搭建公司为何要跟展会主办打交道。简单地说,展会主办拥有大量的参展商信息。这些参展商是展览搭建公司潜在的客户群体,与主办打好交道,就等于拿到了通向这些客户的 “…...
软件开发方法
软件开发方法是一种用于指导软件开发过程的系统性方法,它涵盖了从需求分析、设计、编码、测试到维护的整个软件生命周期。软件开发方法通常包括一系列的步骤、技术和工具,以确保软件的质量、可维护性和可扩展性。 常见的软件开发方法有瀑布模型、敏捷开发、螺旋模型等。这些…...
「Mac畅玩鸿蒙与硬件24」UI互动应用篇1 - 灯光控制小项目
本篇将带领你实现一个互动性十足的灯光控制小项目,用户可以通过点击按钮来控制灯光的开关。该项目将涉及状态管理、动态图片加载以及按钮交互,是学习鸿蒙应用开发的重要基础。 关键词 UI互动应用状态管理动态图片加载用户交互 一、功能说明 在这个灯光…...
十二:java web(4)-- Spring核心基础
目录 创建项目 Spring 核心基础 Spring 容器 Spring 容器的作用 Spring 容器的工作流程 Bean Bean 的生命周期 IOC(控制反转)与依赖注入(DI) 控制反转的概念 依赖注入的几种方式(构造器注入、Setter 注入、接…...
new和malloc有什么区别,他们的用法是什么?malloc分配失败会导致什么问题
1) new和malloc的区别,和他们的用法 new 和 malloc 主要有以下区别: 一、性质和来源 new :是 C 的运算符,在操作时会调用构造函数进行对象的初始化。它是 C 语言层面的操作,能更好地与 C 的面向对象特性结合。 malloc …...
了解SQLExpress数据库
SQLExpress(Microsoft SQL Server Express)是由微软公司开发的一款免费且轻量级的数据库管理系统。以下是关于SQLExpress的详细解释: 一、定义与特点 定义: SQLExpress是Microsoft SQL Server的一个缩减版或基础版,旨在…...
geoserver创建一个根据属性显示不同形状的点样式
geoserver创建一个根据属性显示不同形状的点样式 三角形 -triangle 圆形 - circle 正方形 - square 星形 - star 十字形 - cross 菱形 -diamond 代码: <?xml version"1.0" encoding"UTF-8"?> <StyledLayerDescriptor version"…...
中国遗传学会2024全国学术研讨会在长沙成功召开
2024年11月3日至6日,备受瞩目的中国遗传学会2024全国学术研讨会在长沙盛大召开,此次盛会由中国遗传学会携手湖南省遗传学会共同主办,中南大学与南华大学共同承办。大会以“遗传学:前沿与交叉”为主题,吸引了来自全国各…...
Android Studio 多工程公用module引用
在Android Studio中,如果有多个工程需要共享同一个module,你可以通过以下步骤来实现module的公用: 1.将你想共享的module移动到一个单独的目录,比如一个新建的"libraries"文件夹。 2.修改module的build.gradle文件&am…...
(实战)WebApi第9讲:EFCore性能优化(IQueryable延迟查询、取消跟踪机制)
一、例子是第8讲的四、6(EFCore的静态化处理 ):分析ToList() ToList()在下图绿色框内。 二、在没有最终取数据的时候,使用 IQueryable<T> 延迟执行查询 (1)在没有最终取数据的时候,不要使…...
Java实现pdf转图片
第一步 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.32</version> <!-- 请检查最新版本 --> </dependency> 第二步 package com.example.demo.file.pdf;import or…...
健身房管理新纪元:SpringBoot技术应用
4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示: 图4-1系统工作原理…...
Java之字符串分割转换List
Java之字符串分割转换List 字符串分割成数组然后转换成List有多种方式,以下是每种方式的示例,推荐Java8的新特性Stream。 使用Java8的新特性Stream API String str "aaa,bbb,ccc"; // 使用Arrays.stream() List<String> list1 …...
RabbitMQ如何保证发送的消息可靠(RabbitMQ的Confirm模式和2.Return模式)
RabbitMQ如何保证发送的消息可靠(RabbitMQ的Confirm模式和2.Return模式) 1、RabbitMQ消息Confirm模式(保证从生产者到交换机的消息可靠)1.1、Confirm模式简介1.2、具体代码实现1.2.1、application.yml 开启确认模式1.2.2、生产者方…...
Pixel Language Portal快速上手:无需Python基础的Streamlit镜像开箱即用
Pixel Language Portal快速上手:无需Python基础的Streamlit镜像开箱即用 1. 什么是Pixel Language Portal? Pixel Language Portal(像素语言跨维传送门)是一款基于腾讯Hunyuan-MT-7B核心引擎构建的创新翻译工具。它最大的特点是…...
Rust DLL注入技术深度解析:Rust-for-Malware-Development完整实现指南
Rust DLL注入技术深度解析:Rust-for-Malware-Development完整实现指南 【免费下载链接】Rust-for-Malware-Development Rust for malware Development is a repository for advanced Red Team techniques and offensive malwares & Ransomwares, focused on Rus…...
CasRel在智能问答系统中的落地实践:为QA引擎注入结构化事实支撑
CasRel在智能问答系统中的落地实践:为QA引擎注入结构化事实支撑 1. 引言:当问答系统遇到关系抽取 想象一下这样的场景:用户向智能问答系统提问"苹果公司的CEO是谁?",系统需要快速准确地回答"蒂姆库克…...
终极指南:如何彻底解决Colab运行text-generation-webui的Matplotlib后端错误
终极指南:如何彻底解决Colab运行text-generation-webui的Matplotlib后端错误 【免费下载链接】text-generation-webui The original local LLM interface. Text, vision, tool-calling, training, and more. 100% offline. 项目地址: https://gitcode.com/GitHub_…...
避坑指南:Unreal导航网格NavMesh生成与Agent属性设置的5个常见误区
Unreal引擎导航系统避坑指南:NavMesh生成与Agent配置的5个关键误区 在Unreal引擎中构建可靠的AI寻路系统时,许多开发者常陷入相似的陷阱。当AI角色频繁卡在门槛边缘、拒绝攀爬斜坡或选择匪夷所思的绕路路线时,问题往往不在于代码逻辑…...
Multisim课程设计救星:从卡诺图到仿真,手把手搞定五人表决器(附源文件)
五人表决器数字电路设计实战:从卡诺图到Multisim仿真的全流程解析 第一次拿到数字电路课程设计任务书时,看着"五人表决器"这个题目,我的大脑和实验室的示波器一样一片空白。直到在面包板上成功点亮第一个LED指示灯,才真…...
3步搞定电脑风扇噪音!FanControl风扇控制软件完全指南,让你的电脑从此安静如新!
3步搞定电脑风扇噪音!FanControl风扇控制软件完全指南,让你的电脑从此安静如新! 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项…...
别再只盯着虚短虚断!运放设计必须掌握的6个非理想参数(附MCP6N16实测数据)
运算放大器非理想特性实战指南:从理论到MCP6N16实测 在嵌入式系统设计中,运算放大器如同精密仪器中的齿轮,其微小偏差可能导致整个测量系统的崩溃。许多工程师在初期学习阶段被"虚短虚断"的理想模型所束缚,直到实际项目…...
我试了opencli,3秒拿到知乎热榜——手把手教你把200+网站变成命令行
前言: 坦白说,我第一次看到opencli的时候,心想:"又一个给程序员用的 命令行工具 ,跟我没关系。" 然后我随手试了一条命令—— opencli bilibili hot 3秒钟,B站条直接出现在我眼前。标题、热度、排名,整整齐齐。 那一刻我意识到 这玩意儿不是给程序员用的,是…...
Phi-4-mini-reasoning应用场景:AI编程教练中算法题逻辑拆解与反馈生成
Phi-4-mini-reasoning应用场景:AI编程教练中算法题逻辑拆解与反馈生成 1. 模型介绍 Phi-4-mini-reasoning是一款专注于推理任务的文本生成模型,特别擅长处理需要多步逻辑分析的场景。与通用聊天模型不同,它被设计用来解决数学题、逻辑题等需…...
