【问题标题】:Chrome extension using sidebar使用侧边栏的 Chrome 扩展
【发布时间】:2011-09-12 16:59:10
【问题描述】:

我一直在查看 Chrome 扩展程序,我想创建一个使用侧边栏与网页交互的扩展程序。因此,用户单击按钮启动扩展程序,当前页面拆分,右侧部分显示我的扩展程序。我在下面尝试过,但我什么也没看到(工作或其他)。我对它不起作用并不感到惊讶,因为我没有一个 sidebar.html 文件来做一件事。我在清单中有它的原因是因为我在本网站的另一篇文章中看到了它。建议在 manifest.json 中使用“sidebar”行,但文档中甚至没有提到“sidebar”是清单语法的有效部分。

manifest.json:

{
  "name": "Test 1",
  "version": "1.0",
  "description": "Test Extension 1",
  "page_action": {
    "default_icon": "icon.png",
    "default_title": "Testing",
    "default_popup": "popup.html"
   },
  "sidebar" : {},
  "permissions": [
    "experimental"
  ]
}

popup.html:

<script>
  chrome.experimental.sidebar.show();
  chrome.experimental.sidebar.expand();
  chrome.experimental.sidebar.navigate({path: "sidebar.html"});
</script>

我已启用“实验性”。

感谢您的帮助。

【问题讨论】:

标签: google-chrome-extension


【解决方案1】:

问题在于,理论上,您打开的是弹出窗口内的侧边栏,而不是当前页面。

您应该在页面中添加一个内容脚本,并带有打开侧边栏的功能。因此,在您的弹出窗口中,您应该只检索当前选项卡,然后从中调用此函数。

此外,正如 Boris Smus 在您的问题中所说,侧边栏将在未来版本中停用。所以我建议你通过内容脚本创建自己的侧边栏框架。


更新

为了帮助你,我做了一个简单的扩展,在当前页面上创建一个侧边栏。

@Curtis 在 Github 上托管了我的示例扩展,你可以克隆它here

【讨论】:

  • 谢谢。尝试按照您的建议创建带有内容脚本的侧边栏框架,但我找不到任何连贯的文档,只是到处都是 sn-ps,没有任何东西可以将各个部分联系在一起。在 manifest.json 中,我输入了"content_scripts": ["js":["test_content_script.js"]}],那么其中的脚本是如何被调用的呢?我是否从 popup.html 调用 test_content_script 中的函数?谢谢。
  • 侧边栏是针对特定网址的?
  • 非常感谢您抽出宝贵时间来做这件事。我已经下载了它,它工作得很好。我会尝试修改,以便侧边栏不会隐藏原始页面的一部分,但我非常感谢你让我摆脱障碍!再次感谢。
  • 不客气!如果它解决了您的问题,请投票并标记为已接受!
  • 我将其标记为已接受,但当我尝试投票时,它告诉我我需要至少 15 的声誉。
【解决方案2】:

我也在寻找一个侧边栏解决方案,结果是 Implement chrome.sidebar API 线程。

根据the Sidebar PRD,已经可以通过以下方式创建侧边栏了:

  1. 将脚本注入页面,通过修改 DOM 插入 iframe 来编辑页面的 HTML 以显示侧边栏 从远程服务器加载侧边栏的内容。
  2. 注入的脚本可以直接编辑DOM以显示侧边栏,其内容通过消息传递。

但是,在以下方面存在许多缺点(在同一文档中进行了解释):

可用性、性能、安全性、隐私(扩展嗅探以及第三方 cookie)和可访问性。

你可以watch a demo他们正在为未来的侧边栏组件做准备。

如果您在帖子中加注星标,可能有助于更快地发布该功能。

更新

根据this comment,Chrome 不会获得内置的侧边栏组件。

【讨论】:

  • 虽然理论上可以回答这个问题,it would be preferable 在这里包含答案的基本部分,并提供链接以供参考。
猜你喜欢
  • 1970-01-01
  • 2012-04-23
  • 2018-08-24
  • 2014-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-14
相关资源
最近更新 更多