利用书签小工具,定制浏览器专属功能

4 min


Bookmarklet 本质上只是一次性的 Javascript 代码,不能持续运行、实时监控,固然远不及正式的浏览器插件,且不论 Chrome 上的添翼利器,即便是戴着镣铐蹒跚而行的 Safari 插件,当然也比 Bookmarklet 更强大。不过,普通人毕竟不太可能自己开发插件,然而制作一个 Bookmarklet 则很有可能。

易于制作只是一方面,在硬币的另一面,则深深刻印着通用二字。只要不用特别晦涩的代码,几乎所有现代浏览器都可以跑 Bookmarklet,ChromeFirefox 和 Edge 自不待言,Vivaldi、Arc 和 Brave 也可以,甚至常常被讥为「当 IE」的 Safari 都能用。我个人还特意先为 Safari 编写 Bookmarklet,由俭入奢易,通常写出来的东西在更先进的浏览器中可以直接运行。如果愿意,就连手机浏览器也可以用 Bookmarklet。

利用书签小工具,定制浏览器专属功能

所有设备都能使用 Bookmarklet

在 2024 年重谈 Bookmarklet,还有着现实原因。一方面,Safari 和主流手机浏览器令传统插件生存艰难,这是 Bookmarklet 势在必行的历史背景;另一方面,GPT 拆除了代码——至少是简单代码——的门槛,让自制 Bookmarklet 不再显得凡尔赛。此外,即便在插件生态完善的浏览器中,若能借助最新的人工智能技术随意自制工具以供己用,也是一种对 Home Made Tool 的呼应。

自制和使用 Bookmarklet

某种程度上,本文所谓的 Bookmarklet 制作更像是用预拌粉制作蛋糕,技术难度不高,但原材料的压力就随之上升——必须先获得可以运行的 Javascript 代码。这曾经是 Bookmarklet 的阿喀琉斯之踵:既然某人有能力自己写 Javascript,他为何不再接再厉做个浏览器插件(并通过闭源大赚一笔)呢?Bookmarklet 不温不火,自然有这层原因。

简单制作 Bookmarklet

好在 GPT 彻底颠覆了编程,至少是简短的代码。Nielsen Norman Group 精辟地指出,人工智能将交互范式从命令式推动到目的式,不少任务无需指挥计算机,只需告诉他你最终想要的效果,通常就能得到不优雅但有效的代码。而控制网页的 Javascript 通常都不会太复杂,非常适合让 GPT 去写,而且如果一次不行,大不了多生成几个回答,就像摇彩蛋一样——而且基本不花钱、不限量。我曾突发奇想把网页搞成灰色,免受花花绿绿图像的干扰,问了 GPT 后马上获得答案。

找 GPT 讨 Javascript 代码

此外,现成 Javascript 代码也是宝贵资源。例言之,Keyboard Maestro 论坛中有不少用 Javascript 控制网页的讨论,很多其实就是纯 Javascript 套壳,并不囿于 Keyboard Maestro,你可以复制过来当成 Bookmarklet 的素材。

一旦获得 Javascript 代码,之后的工作将势如破竹,各种 Bookmarklet 生成工具一抓一把。在技术上,从 Javascript 到 Bookmarklet 无非是一系列文本替换,把代码修整为超链接的形式。我考虑过编写本地自动化工具,不过也愿意直接用在线服务,最常用的是 Bookmarklet Creator。惟需注意,GPT 生成的代码中有大量双斜杠 // 开头的注释,转换为 Bookmarklet 前需要删除,否则 Bookmarklet 不生效。

用在线工具将 Javascript 转换为 Bookmarklet 注意:如需使用在线服务,建议确保您上传的 Javascript 代码中不包含敏感信息,例如个人信息或 Token。

转换成功的 Bookmarklet 应当以 javascript: 开头,呈现以下格式。

javascript:(function()代码)()

安装和使用 Bookmarklet

获得 Bookmarklet 的代码(链接),很多不熟悉 Bookmarklet 的人都卡在后续的安装步骤。不同于正式的插件,Bookmarklet 不是独立的按钮,而是一枚书签,使用时通常需要在浏览器地址栏或搜索栏——在现代浏览器中,两者往往融合了——中启用,这种操作确实反直觉,毕竟点击一个书签时,第一反应肯定是跳到新页面。好在尝试几次之后,这种操作反而更有优势:连没有插件栏或工具栏概念的移动端浏览器,也能用 Bookmarklet。

安装 Bookmarklet,其实和添加普通网页书签无异。以 Safari 为例,首先随便收藏一个网页(快捷键是 ⌘Command-D,然后在新空白标签页中编辑它,换上 Bookmarklet 的代码。之后,这个书签就成了一颗轻量级的浏览器插件,浏览网页时按下去即可触发 Javascript 代码。

编辑书签并换上 Bookmarklet 代码

接下来的问题就是:如何在网页上使用 Bookmarklet?如果你一直显示收藏夹栏,就直接点击其中的 Bookmarklet;如果不习惯持续显示——可能是为了节省屏幕空间——则点击浏览器地址栏或搜索栏,在弹出的收藏夹项目中点 Bookmarklet,若没有看到,则可能需要在 Safari 设置中勾选“Show Favorites”。

在 Safari 浏览器设置中勾选「Show Favorites」

我常常需要下载裁判文书,而默认的打印效果非常差,夹杂了大量无关元素,而正文反而被压到一边了。最初我写了一段 Javascript 并包装成 Keyboard Maestro 解决此问题,结果同事见后都羡慕不已,于是我顺手做了一个 Bookmarklet 版,不仅不依靠 Keyboard Maestro,连操作系统和浏览器也没有什么要求,从 Safari、Chrome 到 360 用户都能正常下载裁判文书。

用 Bookmarklet 重新排版裁判文书

熟悉用户自动化的读者,大概也能想到替代方案,然而像 Bookmarklet 这样获于此而得于彼的通用工具,却不多见。在自制 Bookmarklet 难度骤降的当下,诸位也不妨将其作为备用方案。


Like it? Share with your friends!

0
Anonymous

Choose A Format
Story
Formatted Text with Embeds and Visuals
List
The Classic Internet Listicles
Countdown
The Classic Internet Countdowns
Open List
Submit your own item and vote up for the best submission
Ranked List
Upvote or downvote to decide the best list item
Video
Youtube and Vimeo Embeds