Google chrome extension 使用侧边栏的Chrome扩展

Google chrome extension 使用侧边栏的Chrome扩展,google-chrome-extension,Google Chrome Extension,我一直在研究Chrome扩展,我想创建一个使用边栏与网页交互的扩展。因此,用户单击按钮启动扩展,当前页面将被拆分,右侧部分显示我的扩展。我在下面试过了,但我什么也没看到(工作或其他)。我并不太惊讶它不起作用,因为我没有一个sidebar.html文件。我之所以把它放在清单上,是因为我在这个网站的另一篇文章中看到了它。有人建议在manifest.json中使用“sidebar”行,但文档中甚至没有提到“sidebar”是manifest语法的有效部分 manifest.json: { "nam

我一直在研究Chrome扩展,我想创建一个使用边栏与网页交互的扩展。因此,用户单击按钮启动扩展,当前页面将被拆分,右侧部分显示我的扩展。我在下面试过了,但我什么也没看到(工作或其他)。我并不太惊讶它不起作用,因为我没有一个sidebar.html文件。我之所以把它放在清单上,是因为我在这个网站的另一篇文章中看到了它。有人建议在manifest.json中使用“sidebar”行,但文档中甚至没有提到“sidebar”是manifest语法的有效部分

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>

chrome.experimental.sidebar.show();
chrome.experimental.sidebar.expand();
浏览({path:“sidebar.html”});
我已启用“实验”


感谢您的帮助。

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

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

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


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


@在Github上托管了我的示例扩展,您可以克隆它。

我也在寻找一个侧栏解决方案,结果在 线

根据,已经可以通过以下方式创建侧栏:

  • 将脚本注入到页面中,通过修改DOM插入iframe来编辑页面的HTML以显示侧栏,iframe 从远程服务器加载侧栏的内容
  • 注入的脚本可以直接编辑DOM以显示边栏,边栏的内容通过消息传递
  • 但是,在以下方面存在许多缺点(在同一文件中解释):

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

    您可以了解他们为将来的边栏组件准备了什么

    如果您启动线程,可能有助于更快地发布该功能

    更新
    根据,Chrome不会获得内置的侧栏组件。

    那么为什么不使用
    sidebar.html
    ?请注意,侧栏API将在Chrome的未来版本中消失。这些是最前沿的文档(请注意URL中的
    trunk
    ):谢谢。正如你所建议的,我试图用内容脚本创建一个侧边栏框架,但我找不到任何连贯的文档,到处都是片段,没有任何东西可以将这些片段联系在一起。在manifest.json中,我放置了
    “content\u scripts”:[“js”:[“test\u content\u script.js”]}]
    ,那么如何调用其中的脚本呢?我是否从popup.html调用test_content_脚本中的函数?谢谢。侧边栏是一个特定的url?非常感谢你花时间这么做。我已经下载了它,它工作得很好。我会尝试修改,这样边栏就不会隐藏原始页面的一部分,但我非常感谢你让我摆脱了这些障碍!再次感谢,不客气!如果它解决了你的问题,请投票支持答案并将其标记为已接受!我将其标记为接受,但当我尝试投票时,它告诉我,我需要至少15的声誉。虽然这在理论上可以回答这个问题,但在这里包括答案的基本部分,并提供链接供参考。