Update 2013-04-20: 原先的名字 InstapaperBookmark 容易误解成只是添加一个书签,现在改名为 InstapaperBookmarklet。
写了个 Safari 扩展 InstapaperBookmarklet,在工具栏添加一个按钮来执行 Instapaper bookmarklet。如果当前标签是空白页面的话点击会访问 Instapaper 网站。
如果你跟我一样使用 SafariTabSwitching 这个基于 SIMBL 的插件(实现 cmd+num 切换标签页),习惯隐藏书签栏,又喜欢官方 bookmarklet 的视觉反馈,那么可以试试看这个扩展。
Safari 上其实有很多不错的扩展。canisbos.com 这个网站上有很多,我目前使用如下几个:
- gDirectLinks 移除 Google 搜索结果中的跳转 URL,这样 Safari 记录的历史记录更有意义
- QuickStyle 比 Stylish 方便多的定制网页 css 的工具
- PopSearch 添加自定义搜索引擎
- QuickScript 在网页中执行任意的 JavaScript,InstapaperBookmarklet 就可以用这个实现,不过不能添加专用按钮,要多点击几次鼠标
- CustomReader Safari Reader 的效果远比 Chrome 扩展实现的效果好,这个扩展可以定制 Safari Reader 的背景色、字体等
其他推荐扩展:
- AdBlock 注明的拦广告扩展
- Ultimate Status Bar 实现类似 Chrome 在页面下方显示链接 URL 的插件
- YouTube5 用 HTML5 播放器而不是 Flash,而且可以方便下载视频
- 微博急简 新浪微博默认页面我觉得过于混乱,这个 user style 扩展可以让微博页面简洁很多
写 InstapaperBookmarklet 的时候了解了 Safari 扩展的工作机制。简单来说扩展包含一些 html 页面和 JavaScript 代码。html 负责扩展界面,JS 实现逻辑。扩展的 JS 执行时只能访问扩展页面的 DOM,要在用户打开的网页添加功能则必须向这些网页注入 JS。有些扩展需要向所有页面注入 JS,如果注入的 JS 文件很大则可能对浏览器性能造成影响。