javascript - Chrome 扩展程序 : default pop_up vs injecting a div in page

标签 javascript jquery google-chrome google-chrome-extension

我对流行的 Chrome 扩展中通常遵循的做法感到困惑。我正在尝试开发自己的 chrome 扩展程序,在完成基本教程后,我有一个默认的弹出页面,每当我单击地址栏附近的扩展程序图标时,都会打开该页面。到目前为止,一切都很好!在检查我的 Chrome 浏览器中安装的一些优秀扩展的源代码时,我发现它们都没有使用 default_popup 页面,但肯定通过后台页面或内容脚本调用一些 JavaScript。但用户看到的最终行为在功能上就像屏幕右上角的弹出窗口,尽管更美观。是否有任何理由不使用 default_popup 而不是使用其他机制?

最佳答案

我认为这实际上取决于您的应用在功能设计方面的需求。因为没有真正的理由让您想要选择其中之一而不是另一个。大多数信息可以从页面传递到扩展应用程序,反之亦然。用户希望在单击按钮时看到弹出窗口,但 Chrome、Firefox 和 Safari 也支持并常用注入(inject)弹出窗口。

优点/缺点:

  • 如果您的扩展取决于页面内容,那么您可以注入(inject)分析页面的脚本并相应地注入(inject) div。您可以将分析后的数据发送回扩展程序并打开弹出窗口,但这是一个额外的步骤。如果您的扩展程序与特定页面无关,那么您最好使用弹出窗口。

  • 当您切换标签页或浏览器失去焦点时,弹出窗口会关闭。注入(inject)的弹出窗口不需要。

  • 不要随意将脚本和样式表注入(inject)到页面中。它们干扰网站的 native js/css 以及其他扩展注入(inject)的内容,这几乎不可能完全解释。

关于javascript - Chrome 扩展程序 : default pop_up vs injecting a div in page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28740298/

相关文章:

javascript - 选项卡式界面的标记

javascript - 如何在 RSK 上获取诸如 ERC20 代币符号之类的信息?

javascript - 在javascript中延迟后获取网站内容

javascript - 将 Canvas 导出到 SVG 文件

javascript - 在 Chrome 中使用 toDataURL 有其他选择吗?

asp.net - 从服务器检索值时,ASP.NET AJAX 如何工作?

javascript - 最终动画到高度:auto with jQuery (How to retain actual height:auto)

php - Ajax PHP JavaScript : error when using POST method

javascript - 有没有办法增加 Google Chrome 中 localStorage 的大小以避免 QUOTA_EXCEEDED ERR : DOM Exception 22

javascript - 是否有可能在浏览器中发现类型化数组分配限制?