通过浏览器操作/图标禁用/启用 Chrome 扩展

2023-11-25

我正在开发的 chrome 扩展将内容脚本和 CSS 插入到网站的每个页面上。但是,用户可能有一个或多个页面,他或她不希望扩展程序在其上运行,因此如果我可以将浏览器操作设置为基本上打开/关闭切换,那就太好了。

我想做的是这样的:

chrome.browserAction.onClicked.addListener(function(tab) {

    //IF ENABLED THEN DISABLE

    //IF DISABLED THEN ENABLE

} 

任何帮助将不胜感激!


不提供此类API。但存在两种可能的解决方法:

I. 您可以使用“已禁用”标志变量并从后台页面更新它。

背景页:

function disableExtension(disabled)
{
    chrome.windows.getAll({populate : true}, function (window_list)
    {
        for (var i = 0; i < window_list.length; ++i)
        {
            var window = window_list[i];
            for (var j = 0; j < window.tabs.length; ++j)
            {
                var tab = window.tabs[j];
                if (checkContentScriptExists(tab))
                {
                    chrome.tabs.executeScript(tab.id, {code : "disabled = " + disabled + ";"}, allTabs: true) 
                }
            }
        }
        // No matching url found. Open it in the new tab
        chrome.tabs.create({ url : url, selected: true });
    });
}

内容脚本应在运行前检查条件

if (!disabled) doSomething();

二.在后台页面内容中保存禁用变量的有争议的方法

背景页:

function disableExtension(disabled)
{
    global.disabled = disabled;
}
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
    if (request.msg == "getDisabled") {
        sendResponse({disabled: global.disabled});
        return true;
    }
});

并且内容脚本应在执行前查询当前禁用状态

chrome.runtime.sendMessage({msg: "getDisabled"}, function(response) {
   if (!response.disabled) doSomething();
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过浏览器操作/图标禁用/启用 Chrome 扩展 的相关文章

  • 如何让 Google Apps 脚本进行 SHA-256 加密?

    我需要使用文本输入 1 轮 十六进制输出 SHA 256 加密来加密字符串 这应该是一个长度为 64 的字符串 我在 Google Apps 脚本文档中尝试过的每个 SHA 256 加密模块都会返回一组数字 例如 function SHA2
  • Exceljs:迭代每行和每列的每个单元格

    我想在所有单元格中添加粗边框 这是一个有角度的项目 我正在使用打字稿 我可以为 1 个单元格做到这一点 worksheet getCell A1 border top style thick left style thick bottom
  • 重新排序 Magento JavaScript 包含 (addJs)

    我会保持简单 在我的产品页面上 我需要删除prototype js 文件并将其替换为最新版本的prototype 到目前为止 我已经使用 local xml 成功替换了它
  • 如何使用 Underscore 获取 JavaScript 数组中的重复项

    我有一个数组 我需要重复的项目并根据特定属性打印这些项目 我知道如何使用 underscore js 获取唯一项目 但我需要找到重复项而不是唯一值 var somevalue name john country spain name jan
  • 为什么我的箭头函数有原型属性?

    正如文档中提到的https developer mozilla org en docs Web JavaScript Reference Functions Arrow functions https developer mozilla o
  • Chart.js - 如何将数组集合推入数据集

    我一直在尝试多种方法将数组集合推送到数据集中 任何人都可以帮助我根据下面的代码将数组推入堆积图表中 这是例子 Codepen 堆叠栏 https codepen io narendrajadhav pen abzpWam JavaScrip
  • 如何获得相对于特定父级的偏移量?

    我想获取元素相对于的偏移量特定的父母不是直接的 也不是文档 我在互联网上查找并找到了offset http api jquery com offset and position http api jquery com position jQ
  • 尝试使用 CasperJS 跟踪 iframe 中的链接

    我正在尝试使用CasperJS http casperjs org index html跟踪 iframe 中的链接 但我似乎无法获取 iframe 的文档 这是使用我找到的 iframe 示例页面进行的测试 第三个 iframe 有一个名
  • 内联执行生成的汇编程序

    我正在阅读以下演示文稿 http wingolog org pub qc 2012 js slides pdf http wingolog org pub qc 2012 js slides pdf其中讨论了 4 10 19 内联 ASM
  • 从对象获取数据 - 我看到数据但无法保存它们

    正如你所看到的 我是新来的 我确实尝试过搜索 但没有找到解决我问题的方法 所以这是我的问题 如果我这样做 console log grid data kendoGrid data 这在控制台中显示如下 所以我明白这一点 有一个数组和一个带有
  • Javascript“命名空间”和 jQuery AJAX

    我正在使用此处列出的建议 http www odetocode com articles 473 aspx http www odetocode com articles 473 aspx 使用模拟的JavaScript AJAX网络聊天系
  • Backbone.js 应用程序可以逐步增强并可供搜索引擎抓取吗?

    我需要为我的下一个项目实现一个 MVC JavaScript 框架 但它既是一个网站 又是一个 Web 应用程序 是否可以公开数据服务器端 然后解析 URL 以显示 JS 版本 我计划使用 Rails 作为服务器端代码 我写了一个关于这个主
  • 如何从Web JavaScript应用程序获取桌面C#程序中的变量

    我遇到一个问题 有两个应用程序 一种是 C 中的桌面应用程序 另一种是 javascript 中的 Web 应用程序 运行桌面应用程序中的一些变量或信息需要传输到Web应用程序 有谁知道如何解决这个问题 有人愿意提供更多细节来解决这个问题吗
  • D3 时间解析返回 null

    根据此页面上的说明 https github com mbostock d3 wiki Time Formatting https github com mbostock d3 wiki Time Formatting我正在尝试解析 ISO
  • Bootstrap 3 - 模态背景不会根据模态对话框的高度调整大小?

    我将一个表单放入模式中 并尝试在用户触发单选按钮时显示表单的一些隐藏字段 显示隐藏字段后 模态自动重新缩放的高度 但模态背景的高度不能用作模态对话框 我该如何解决它 div class modal fade div class modal
  • 加载 angularjs 路由后运行 javascript 代码

    我需要在 angularjs 加载路线后显示警报 显示警报的代码位于 angularjs 异步加载的视图中 视图加载后 我希望它能够运行 但它没有 我知道我可以广播并告诉它稍后运行等 但我需要一个更通用的解决方案 假设您正在谈论基于以下内容
  • 限制线的长度

    我正在尝试画一条代表 弹弓 的线 并且希望它具有最大拉伸长度 在 p5 中 我在位置和位置之间画了一条线 line posA x posA y posB x posB y posA 是鼠标 x 和 y posB 是画布上圆的位置 我想要做的
  • .parents() 没有 jquery - 或 querySelectorAll 为父母[重复]

    这个问题在这里已经有答案了 可能的重复 使用 matchesSelector js 检查 event target parentElement https stackoverflow com questions 12977658 check
  • Chrome 中的 addEventListener

    我正在关注 Lynda com 上有关新 DOM 事件模型的教程 这是我正在使用的代码 function addEventHandler oNode sEvt fFunc bCapture if typeof window event un
  • javascript:获取带有单位的CSS prop值[重复]

    这个问题在这里已经有答案了 我的代码是这样的 image 1 position absolute top 3vw 我的尝试 http jsfiddle net z8k6t3fb 1 http jsfiddle net z8k6t3fb 1

随机推荐

  • C 中允许的静态数组的最大大小是多少?

    在我的算法中 我知道使用静态数组 而不是动态数组 但我有时 达到堆栈的极限 我对吗 静态数组存储在堆栈中 哪些参数会影响一个 C 程序的最大堆栈大小 是否有许多系统参数影响最大数组大小 最大没有 元素的数量取决于数组类型 它取决于系统 RA
  • Windows XP 与 Vista/7 上的 MS Crypto API 行为

    我试图了解如何在 XP Vista 和 Windows 7 上从 PEM 格式 示例包含在下面的代码中 导入公钥 示例代码将在 XP 和 Windows Vista 7 上导入密钥 但不会一样的方法 在 Windows XP 上 字符串 原
  • 使用 ADFS 声明使用 .Net MVC 授权属性重定向循环

    我在使用 Net MVC 5 应用程序配置 ADFS 时遇到问题 我已经在 VS 2015 中将我的项目配置为使用声明 它工作正常 但我有一个问题 我可以使用 ADFS 登录 我可以检查用户角色等 当我尝试使用时出现问题 Authorize
  • 获取浏览器选项卡索引/Id

    那么目前大多数浏览器都有Tabs的功能 有没有办法获取Tab索引呢 所以选项卡 1 中打开了 www google com 选项卡 2 中打开了 www google com 有没有办法识别选项卡索引是什么 伪代码 if tab 2 ale
  • 使用 Mechanize 和 Nokogiri 保存图像?

    我正在使用 Mechanize 和 Nokogiri 来收集一些数据 我需要保存根据每个请求随机生成的图片 在我的尝试中 我被迫下载所有图片 但我真正想要的唯一一张是位于div specific 此外 是否可以从它生成 Base64 数据
  • 带有 4 个 MediaPlayers 的 Android 4.2 =“无法播放此视频”

    每当我尝试加载至少 4 个媒体播放器时 其中一个会损坏它尝试加载的视频并触发 Android 操作系统消息 无法播放此视频 其他信息 对于 3 个媒体播放器 一切正常 在其他 Android 版本上 与 4 2 不同 相同的代码可以使用相同
  • C语言中如何获取目录的大小?

    是否有一个 POSIX 函数可以给我一个目录 包括所有子文件夹 的大小 大致相当于 du s somepath man nftw NAME ftw nftw 文件树行走 描述 ftw 遍历目录树 位于该目录下 dirpath 并调用fn 每
  • runif() 是否真的有一个范围:0<= runif(n) <= 1,如文档中所述?

    我是 R 新手 但文档指出 runif n 返回 0 到 1 范围内的数字 这令我感到惊讶包括的 我期望 0 我用 n 100 000 000 对其进行了测试 发现它从未产生 0 或 1 我意识到实际达到浮点特定值的概率非常小 但仍然 之间
  • 在magento中发送邮件

    如何在magento中发送电子邮件 在索引控制器中编写操作 我的索引控制器 public function postAction post this gt getRequest gt getPost if post exit transla
  • 如何在 bash 脚本中使用 bash 配置文件中定义的函数?

    我的 bash profile 中有一个投影函数 现在我尝试从 bash 脚本调用此函数 但出现未找到错误 如何使投影函数对 bash 脚本可见 您必须导出该函数 export f foo ref
  • Firebase 挂起的动态链接不起作用

    根据 Firebase 动态链接文档 即使未安装应用程序 如果用户在设备上打开链接 Appstore 上的应用程序页面也会打开 并且一旦安装应用程序 应用程序就会在首次启动时处理该链接 经过一番调查后 我发现 Firebase 有一种称为
  • “在 MATLAB 路径中隐藏它”是什么意思?如何在文件中做到这一点?

    我需要在运行 unitTester 文件之前始终执行此操作 我不明白为什么需要这样做 这是什么意思 为什么是 Add to Path gt Selected Folders and Subfolders 不够 Update This her
  • 如何定位直接文本而不是标签内的文本?

    有没有办法只定位直接文本 h1 Tag 这是我想做的事情的一个例子 h1 I want to select this text with a css selector h1 h1
  • Swift 中的 UTTypeCreatePreferredIdentifierForTag 和 CFStringRef

    import Foundation import MobileCoreServices func checkFileExtension fileName NSString println fileName var fileExtension
  • RecyclerView notificationItemRangeChanged 不显示新数据

    我遇到了一个问题RecyclerView Adapter关于notifyItemRangeChanged 看来如果Adapter认为它的大小为0从上次通话到getItemCount 然后我打电话Adapter notifyItemRange
  • git 拒绝在没有代理的情况下连接

    我在 Windows 环境中使用 Linux 系统 为了使用 NT 代理服务器进行身份验证 我进行了设置cntlm并配置系统程序以通过设置使用它http proxy环境变量中的 etc environment file 现在我想删除此代理设
  • 在 Pyspark Dataframe 上透视字符串列

    我有一个像这样的简单数据框 rdd sc parallelize 0 A 223 201603 PORT 0 A 22 201602 PORT 0 A 422 201601 DOCK 1 B 3213 201602 DOCK 1 B 321
  • 如何在 swift 中使用 .a 静态库?

    我想在 swift 中使用我的 webrtc a 静态库 你能帮忙吗 我读到你不能在 swift 中使用静态库 是真的吗 你问的这个问题解决了吗 我今天也遇到这个问题了 一会儿就解决了 如果您尚未解决此问题 您可以尝试以下步骤 p s 这两
  • 如何验证国际化域名[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想验证 php 中的域名 url 该域名可能采用国际化域名格式 如希腊语 域名 http 他们有什么方法可以使用正则表达式来验证它吗 这是一个所谓的国际化域名 支持 IDN 域
  • 通过浏览器操作/图标禁用/启用 Chrome 扩展

    我正在开发的 chrome 扩展将内容脚本和 CSS 插入到网站的每个页面上 但是 用户可能有一个或多个页面 他或她不希望扩展程序在其上运行 因此如果我可以将浏览器操作设置为基本上打开 关闭切换 那就太好了 我想做的是这样的 chrome