打开和关闭铬合金扩展

turn on and off chrome extension(打开和关闭铬合金扩展)
本文介绍了打开和关闭铬合金扩展的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个Chrome扩展,此扩展在浏览器操作中有2个图标(开和关); 基本上,当它在后台时,执行script.js(注入文件:script.js) 使用chrome.tabs.executeScript(tab.id,{file:"script.js",function(){});

我在关闭它时遇到了问题! 我曾尝试在backround.js和script.js之间使用消息通信,但也不起作用。

推荐答案

如果我理解正确,您的扩展应该有两种状态:打开和关闭。单击扩展图标可将其打开/关闭。 在这种情况下,您应该使用存储,以便扩展知道它处于什么状态。因此,在单击事件中,使用类似以下内容:

  chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.storage.sync.get('state', function(data) {
      if (data.state === 'on') {
        chrome.storage.sync.set({state: 'off'});
        //do something, removing the script or whatever
      } else {
        chrome.storage.sync.set({state: 'on'});
        //inject your script
      }
    });
  });

请注意,这是在扩展/浏览器级别发生的,并且将应用于所有选项卡,因此您可能需要记录选项卡ID和状态的更复杂的内容。

然后,您可以选择始终运行内容脚本并在执行某些操作之前检查开/关状态,也可以选择插入并删除脚本。不过,我不确定是否删除了脚本。根据脚本的功能,您可能只想刷新页面(即,如果您的脚本扰乱了DOM,并且您希望在关闭扩展时撤消该操作)。

这篇关于打开和关闭铬合金扩展的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Update another component when Formik form changes(当Formik表单更改时更新另一个组件)
Formik validation isSubmitting / isValidating not getting set to true(Formik验证正在提交/isValiating未设置为True)
React Validation Max Range Using Formik(使用Formik的Reaction验证最大范围)
Validation using Yup to check string or number length(使用YUP检查字符串或数字长度的验证)
Updating initialValues prop on Formik Form does not update input value(更新Formik表单上的初始值属性不会更新输入值)
password validation with yup and formik(使用YUP和Formick进行密码验证)