默认在新标签页中打开书签——说起来容易做起来难

默认在新标签页中打开书签——说起来容易做起来难

💡 原文英文,约1200词,阅读约需5分钟。
📝

内容提要

开发Chrome扩展以在新标签页中打开书签并不简单。目标是点击书签时不替换当前标签页。通过Chrome扩展API,使用用户名标记书签URL,触发下载并立即取消,从而在新标签页中打开原始网址,同时保留图标。尽管存在一些限制,该解决方案仍然有效,用户体验良好。

🎯

关键要点

  • 开发Chrome扩展以在新标签页中打开书签并不简单。
  • 目标是点击书签时不替换当前标签页。
  • 许多用户希望书签默认在新标签页中打开。
  • 常见的解决方案如Ctrl + Click和中键点击,但容易忘记,导致丢失页面上下文。
  • 使用javascript: URL的方式也存在favicon丢失的问题。
  • 初步尝试通过捕获书签导航来实现,但会导致当前标签页重新加载,丢失页面状态。
  • 最终通过触发下载而非导航来解决问题,保持当前标签页不变。
  • 使用空的ZIP文件作为下载目标,成功捕获并取消下载。
  • 需要保留原始URL和favicon,尝试了多种方法,包括重定向和URL片段,但未能成功。
  • 最终通过在URL中使用用户名标记书签,成功实现了目标。
  • 扩展的最终架构通过重写书签URL,确保在新标签页中打开原始网址。
  • 在生产环境中遇到Chrome后台工作者被挂起的问题,通过定时唤醒解决。
  • 该解决方案有一些限制,如内部URL无法使用用户名标记,但整体用户体验良好。

延伸问答

如何在Chrome中默认在新标签页中打开书签?

可以通过开发Chrome扩展来实现,使用用户名标记书签URL并触发下载,从而在新标签页中打开原始网址。

为什么Chrome没有内置书签在新标签页中打开的功能?

因为许多用户希望在点击书签时不替换当前标签页,而现有的解决方案容易导致丢失页面上下文。

开发Chrome扩展时遇到了哪些挑战?

开发过程中遇到的问题包括当前标签页重新加载、favicon丢失以及Chrome后台工作者被挂起等。

如何解决书签点击后当前标签页重新加载的问题?

通过触发下载而非导航来解决,使用空的ZIP文件作为下载目标,成功捕获并取消下载。

使用用户名标记书签URL有什么好处?

使用用户名标记可以保留原始URL和favicon,同时触发下载以在新标签页中打开网址。

这个Chrome扩展的最终架构是怎样的?

扩展通过重写书签URL,确保在新标签页中打开原始网址,并在下载触发后立即取消下载。

➡️

继续阅读