对于一个Google Chrome扩展程序,如何在浏览器图标中创建一个开/关切换?

11
例如,Adblock在下拉菜单中点击浏览器图标时有一个“关闭”选项。
我希望用户能够在域名上切换我的扩展程序的开/关状态,而不是必须禁用它来关闭它。
另一个选项是在网页布局上放置一个静态按钮,用于控制扩展程序或样式表的开/关。
3个回答

8
您需要在扩展中添加一个“browser_action”。您可以在manifest.json文件中详细定义它,具体请参见此处
在您的后台脚本/页面中使用“onClicked”事件监听器来根据用户点击禁用/启用应用程序。您还可以使用相同的事件处理程序函数来更改浏览器操作图标或徽章文本,以向用户显示状态更改/当前状态。
2023年2月更新:
当使用清单版本3时,请使用“action”而不是“browser_action”。详情请参见此处

正是我需要的!但是..我需要帮助来实现它。我理解清单部分,但我需要帮助添加JavaScript来定义不同的样式表,而不仅仅是单独的CSS。我有一个完整的样式表,我想在页面上运行它,点击时运行,并在再次点击时关闭它。 - user1158415
具体来说,在这个例子中,他们有这样一个代码:chrome.tabs.executeScript(null, {code:"document.body.style.background='red !important'"})}); 但是我需要在这个调用中定义一个在扩展中包含的.css样式表。 - user1158415
要向网页添加样式表,请使用清单,并在“content_scripts”下添加清单。有关更多详细信息,请参见[这里](http://code.google.com/chrome/extensions/content_scripts.html)。要实现开启和关闭-如果CSS很小,则一种简单的方法是将事件从后台页面传递到内容脚本,然后从页面元素中添加/删除特定类。您可以查看[此答案](http://stackoverflow.com/questions/9118402/inject-css-for-chrome-extension),以获得更好,更详细的解释和其他方法。 - Adi B
答案中链接的 browserAction URL 已失效:请查看更新后的 browserAction 页面 - Vessel

0

-7

1
尽管您提到了一些不错的扩展,但用户问的是如何在开发自己的扩展时编写功能代码 :) - Sohail

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接