【问题标题】:Having panel behavior in chrome extension在 chrome 扩展中具有面板行为
【发布时间】:2012-04-04 09:45:08
【问题描述】:

我需要在 chrome 中具有面板行为:总是在顶部但不会影响导航(以任何其他方式屏蔽几个像素)。

目前我们有两种选择:

  • 面板模式下的窗口:尚不可用(尽管现在GTalk extension 可以使用)。

  • 窗口处于弹出模式:我可以通过在每个事件上重新聚焦来使其始终位于顶部,但是焦点将瞄准我的窗口(并影响导航)

我正在寻找:

  • GTalk 的黑魔法

  • 一种使弹出窗口保持在顶部的方法(或位于顶部并将焦点转移到第二个最顶部的窗口)

【问题讨论】:

  • 我也需要这个来源。您可以安装和调试扩展,但 JS 相当模糊。 chrome.google.com/webstore/detail/…
  • @mcqwerty 好吧,我做了一些逆向工程(解压缩,jsbeautifier.org js,加载为未打包的扩展,在窗口创建周围设置断点)......他们使用“类型”:“面板” ,但我只是不知道他们是如何让它工作的。也许他们在 Chrome 中硬编码了一些东西,让他们提前拥有功能。我们凡人将不得不等待。
  • 我不认为你可以完成你想要的。我尝试了您提到的扩展程序,但焦点并未保留在主窗口中。为什么你认为 gtalk 做到了这一点?你能说得更具体点吗?
  • @Ernest Gtalk 放弃焦点,同时仍保留在所有其他窗口的顶部。这就是我们试图重现的东西。 BenoitParis 指出,人们可以通过反复偷取焦点来将窗口推向顶部,但这显然是一种比疾病更糟糕的治疗方法。谢谢!

标签: javascript google-chrome google-chrome-extension panel


【解决方案1】:

我发现 GTalk 是唯一带有面板的扩展。您也可以在自己的扩展程序中使用面板,使用真正的黑魔法:

在您的 manifest.json 中,添加键值对:

"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDsDApubb73tPfYlNIFxDu3K3/EHgV6/YOJXJkld1OZ20jW/cOht1j0NggnXhQYuu1mXFUufud4I2N7b5ydyg09gcM9Va3Zk17RhNV9smbPHOd4XlzJeXifX/9MgHPu4FzCen3CiSXsOeAELJIXEuT28xICriuUko/rNPwGeIB9VwIDAQAB"

然后 BOOM,面板被激活!

这是 Google 激活隐藏功能的方式。 The documentation tells us“key”的目的是提供一个唯一标识符但我们并不真正需要它。如图所示,它还激活了隐藏的功能。

此外,您不能有两个具有相同“键”值的扩展程序(GTalk 被卸载)。而且我认为您的扩展程序可能无法进入 chrome 商店。

如果您认识 Google 的某个人,请告诉他们,我们凡人也真的很想拥有面板。面板很棒。它们是在网页顶部显示信息同时仍与之交互的唯一方法。 Google 应该分享爱,我们真的需要面板。

【讨论】:

  • 很棒的发现。我今天试图弄清楚这一点。
  • @Segev 好吧,显然不是,因为该键对应于一个 ID,并且商店中已经有一个具有该 ID 的扩展。从技术上讲,如果您想上传具有预设 ID 的扩展程序,则需要用于创建此 公共 密钥的 私有 密钥。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
相关资源
最近更新 更多