我一直在浏览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>
我启用了'实验'。
感谢您的帮助。
答案 0 :(得分:33)
问题在于,您理论上是在弹出窗口中打开侧边栏,而不是在当前页面中打开。
您应该在页面中添加内容脚本,其中包含打开侧边栏的功能。因此,在弹出窗口中,您应该只检索当前选项卡,然后从中调用此函数。
此外,正如Boris Smus在您的问题中所说,侧边栏将在未来的版本中停止。因此,我建议您通过内容脚本创建自己的侧边栏框架。
为了帮助您,我做了一个简单的扩展,在当前页面上创建了一个侧边栏。
代码已完全注释,您可以下载here。
@ Curtis制作了此示例扩展程序的更新版本。
您可以克隆它from github。
答案 1 :(得分:5)
我一直在寻找侧边栏解决方案,最终结束了 Implement chrome.sidebar API线程。
根据the Sidebar PRD,已经可以通过以下方式创建侧边栏:
- 将脚本注入页面,编辑页面的HTML以显示侧边栏,方法是修改DOM以插入iframe 从远程服务器加载侧栏的内容。
- 注入的脚本可以直接编辑DOM以显示侧栏,其内容通过消息传递。
醇>
然而,关于以下方面存在许多缺点(在同一文件中解释):
可用性,性能,安全性,隐私(扩展嗅探以及第三方Cookie)和辅助功能。
您可以watch a demo准备未来的补充工具栏组件。
如果您对主题加注星标,则可以更快地发布该功能。
根据this comment,Chrome无法获得内置的侧边栏组件。