TL;DR: Algolia 的
docsearch.js
在 Safari 下可能导致关闭搜索框后页面自动滚动到底部。通过在 HTML 的<body>
底部添加一段含固定位置输入框的代码 (<div class="fixed"><input type="text" /></div>
),可有效解决此问题。
问题描述
Algolia 是一家提供外部托管搜索引擎服务的公司,广泛应用于技术博客、开源项目等作为站内搜索解决方案。特别是其免费的服务计划,吸引了大量编程博主和开发者的采用。
然而,当使用官方提供的 docsearch.js
构建搜索框时,在 Safari 浏览器中可能会遇到以下问题:
用户关闭搜索框后,页面会自动滚动到底部,严重影响用户体验。
以下视频展示了问题现象:
解决方案
在我的博客中,我长期受到该问题的困扰。经过多次尝试,偶然发现 GitHub 讨论 中 daolf 提供的一段代码,虽然连他本人也不清楚原理,但确实能有效解决问题。
只需将以下代码添加到 HTML 文件的 <body>
底部即可:
HTML
<!-- Magic Fix:修复 Safari 搜索框关闭后页面滚动到底部的问题 -->
<div class="fixed">
<input type="text" />
</div>
</body>
实践效果
该代码已成功应用于我的博客,经过实际测试,Safari 下的搜索框异常问题已经完全解决。如果您遇到类似问题,也可以尝试此方法。