[前端] 为网站侧边栏添加搜索引擎模块
前言
最近想给我的个人网站侧边栏添加一个搜索引擎模块,可以引导用户帮助本站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、生产者方…...

MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...

Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...

NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...

ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...

九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...