张春成

V2

2022/11/16阅读:43主题:默认主题

Pubmed 搜索扩展的浏览器插件

Pubmed 搜索扩展的浏览器插件

我一直觉得搜索结果应该尽可能地方便用户使用,而不是单纯了吸引人点进去的入口。

于是我尝试制作了一个用于 Chrome 或 Edge 浏览器的插件,该插件用于查文献时常用的 Pubmed 搜索引擎,能够自动为它的搜索结果增加一些易用性功能。

简单来说,你不需要再点击进入任何一篇文章,而是可以直接在搜索界面上完成想要的操作。

PubMed[1]


不方便在哪里

如果我在该引擎上进行搜索,那么它会反馈一些搜索结果,每个结果对应一篇论文或者别的什么。如果你对某篇文章感兴趣,那么就需要点进去。

原始搜索界面
原始搜索界面

原始搜索界面

文章详情界面
文章详情界面

文章详情界面

这样很麻烦,因为搜索结果与详细页面完全脱节了,我为了多看几篇文章,就不得不重复着点击、返回、再点击、再返回的循环。简直要了老命。

插件做的事情

于是我就写了这个插件,该插件能够自动操作这些搜索结果,简单来说,它允许您在搜索页面中使用两个功能:

  1. 直接阅读感兴趣的论文的完整页面;
  2. 直接访问论文的发表商,从而直接阅读完整的文章。

直观上讲,它会给每篇文章的摘要部分都加上一条粉色竖线,它代表摘要部分可以点击以激活功能 1;它还在之后加上一个带出版商 LOGO 的模块,点击它可以激活功能 2。

因此,如果你点击摘要,它会给你直接呈现细节界面(再点击一下就可以关掉它);如果你点击出版商 LOGO 你会直接跳转到文章的阅读界面。也就是说,你可以在这个搜索结果界面上,完成你想要做的一切操作。

搜索增强后的界面
搜索增强后的界面

搜索增强后的界面

点击摘要后弹出的界面
点击摘要后弹出的界面

点击摘要后弹出的界面

技术方案

这个小东西没有多少技术含量,但有个关键难点值得记录下来。这个难点在于 pubmed 这个网站对它的内容分发有较严格的限制。其中最主要的一点是它声明不支持 frame 再分发

<meta http-equiv="X-Frame-Options" content="deny" />

这导致无法简单地将搜索结果的内容页放置在我想要它出现的位置。

因此我使用 jQuery 代表用户对内容页面进行请求,拿到内容(content)后,再将其作为 innerHTML 直接“贴”在目标位置。

$.ajax({
 url: ${targetURL},
 successfunction (data{
  // Got content as data
  // Put data into the right div
 }
})

剩下的事情交给运气,希望内容页面的代码不会对网页的排版造成破坏,结果是我的运气不错。

安装方式

本文的插件已经发布在我的 Github 上

Pubmed-chrome-edge-extension.git[2]

如果你感兴趣的话,可以下载下来,然后将它解压缩后直接拖到 Edge 浏览器的扩展页上即可完成安装,它会在搜索时自动工作。

安装方式
安装方式

安装方式

参考资料

[1]

PubMed: https://pubmed.ncbi.nlm.nih.gov/

[2]

Pubmed-chrome-edge-extension.git: https://github.com/listenzcc/Pubmed-chrome-edge-extension.git

分类:

后端

标签:

后端

作者介绍

张春成
V2