分享好友 最新动态首页 最新动态分类 切换频道
个人博客网站添加文章搜索功能
2024-12-26 14:29

文章转自个人博客:https://knightyun.github.io/2019/03/04/articles-search,转载请申明

个人博客网站添加文章搜索功能


现在很多网站页面里都有搜索模块,包括在线搜索、站内搜索等等,尤其是博客类网站,文章搜索功能就显得比较重要,现在以个人博客网站为例,详细介绍如何给页面添加搜索功能模块,至于如何搭建个人博客网站,可以参考这篇文章:https://knightyun.github.io/2018/04/01/github-pages-blog

功能分析

为网页添加搜索模块的第三方网站有不少,实现效果也都不错,既然人家都能通过代码实现此功能,与其过度依赖第三方,何不自己研究一下原理自己实现呢*_*

网页内搜索功能无非就是在文本输入框内输入一串想要搜索的关键字符串,点击搜索按钮后查找匹配出站内所有文章的匹配结果进行输出,再附上一个文章的链接;针对这个功能,作者本人第一时间想到的则是前端领域里的 Ajax,利用 XMLHttpRequest() 实现数据的交互,不清楚的可以自行百度快速补习,然后一般博客类网站都有 RSS 订阅功能及其数据页面,不清楚的也可以迅速百度了解一下,其实就是站内某个目录内存在一个叫 feed.xml 或者类似名字的页面,XML格式的,早期用于实现新闻内容订阅的,现在用的也比较广泛,里面存储的就是文章相关的一些数据,因此我们就可以获取这个文件里面的所有内容然后实现搜索匹配

当然有其他更好的实现方法可以自行参考或者在文末评论,那么接下来便通过这个方法来一步步实现搜素功能

功能实现

或者在这里:https://knightyun.github.io/ 预览我的博客的搜索模块的最终实现

HTML部分

即页面样式,组成很简单,即一个文本输入框和一个搜索图标,这里图标可以自行搜索下载一个,或者像下面一样使用在线图标,全部代码如下

先在内部添加以下代码,使用在线图标

 

然后在网页内需要添加搜索栏的合适位置添加以下代码,一般放在顶部导航栏

 

上面的clear是一个清除输入框内容的图标search-results是用于输出匹配到的结果的板块

CSS部分

然后来看一下CSS样式代码,仅供参考

 

样式可以自行随意调整,最终感觉好看就OK

JavaScript部分

接下来就是重头戏了,也是实现搜索功能的核心部分,搜索逻辑的实现

再来大致分析一下逻辑,和实现的思路

  1. 利用XMLHttpRequest()获取站内feed.xml内的所有数据,保存到一个XML DOM对象中
  2. 将XML对象中的文章标题、链接、内容、索引等通过等方法获取并保存到对应数组变量中
  3. 用户在输入框输入查找内容,提交后内容保存到一个字符串类型变量中
  4. 遍历保存文章内容的数组,通过等方法和输入值进行匹配
  5. 匹配成功后得到所有匹配成功的数组元素的索引值,该索引值也是该内容的标题、链接数组对应的索引值
  6. 将最终搜集的文章标题、链接,以及匹配到的内容片段摘取输出到页面

这里附上最终的 js 实现代码与注释

 

可以把上面的代码保存到这样的 js 文件中,然后引入到 html 页面里

最新文章
百八十个密码不用记,试试免费、跨平台的微软密码管理 App
  随着使用网站数量的增多,对于密码管理愈发的重要起来。抛开安全因素不讲,记住这些密码本身就是一个很考验记忆力的事情。面对如此越来越多的密码,不同的人有不同的解决方案。我的同事当中有人用小本子记录自己的密码,也有人用 Excel
英雄联盟技能提示怎么设置?
方法/步骤1/4进入游戏在电脑桌面打开LOL,进入到游戏界面。2/4进入游戏设置进入英雄联盟游戏大厅,点击右上角的进入游戏设置。3/4设置轨迹指示在设置界面选择热键,点击第一个选项,用带指示器的快捷施法替代快捷施法这个选项。4/4取快捷施
百度教育用AI黑科技为高考生家长送“清凉”
今日上午9时,一年一度的高考大戏正式上演。数据显示,今年全国有940万考生参考,北京地区共设92个考点,1791个考场,预计6万余人参加高考。与往年一样,除了直接参与“战斗”的高考考生,“望子成龙心切”的陪考大军也是每个考点周边必不
线上赏樱花5分钟教你用Python:画一棵漂亮的樱花树(附代码)
如果觉得不过瘾,先想自己亲自做樱花效果,那么赶紧来看了,各式各样的樱花效果树,领域IT界樱花盛景,下面就分享一下好看好玩的樱花效果树代码,这些大多都是运用python中的海龟画图来实现出来的效果
【整站源码+每天自动采集】羊毛部落赚客资讯类网站源码/无人值守采集/养站站群专用
【整站源码+每天自动采集】羊毛部落赚客资讯类网站源码/无人值守采集/养站站群专用源码介绍薅羊毛资讯博客自动采集站源码,wordpress后台前后端均为响应式布局方便管理,支持用户注册科投稿。1、内置大量文章,安装后即可运营省时省力;2、
网络推广工具种类有哪些
网络推广工具种类繁多,可以根据推广目标和策略选择适合的工具。以下是一些常见的网络推广工具类别:1. 社交媒体管理工具: - 用于管理和优化社交媒体平台上的内容和广告。例如,Buffer、Hootsuite、Sprout Social。2. 搜索引擎优化工具(S
排列五开奖结果第2021327期 一等奖中出189注
  每天晚上20点30分,一起来和我关注体彩排列五开奖结果。今天是2021年12月07日,中国体育彩票排列三第2021327期开奖号码如下。排列五作为排列三的延伸,堪称排列三的老大哥,只有一个奖级设置,奖金高达10万元,故而深得彩民朋友的热爱
福建网站排名优化费用是如何计算的?
福建网站seo优化百度搜索引擎关键词快速排名推广提升自然流量点击SEO优化师、网站设计师、梦想者您的流量获取专家“创新互联”成立于2013年,是一家注重效果与用户体验的运营公司,创立至今为500多家企业提供了针对于网站的搜索引擎优化方
短网址生成器:提升链接分享与搜索引擎索引效率的利器
在日常生活和工作中,我们经常需要分享和传递链接,无论是在社交媒体上发布内容、发送电子邮件还是在广告宣传中,链接的长度往往是一个挑战,特别是对于一些复杂的、包含多个参数的链接来说。长长的链接不仅不美观,还可能被截断或错误地复
用AI绘画技术生成高清美女写真,轻松成为数字艺术大师!
在数字时代,生成艺术品的方式正在悄然改变。你是否曾梦想拥有自己理想的美女写真?而如今,借助人工智能技术,我们不仅可以实现这样的愿望,还能让生成过程变得轻松而有趣。那么,如何通过AI生成超逼真的美女写真呢?本文将带你探索这场科
相关文章
推荐文章
发表评论
0评