我们如何覆盖 navigator.getBattery()?

2024-02-27

我们正在编写一个 Chrome 扩展,当运行客户端代码的站点出于指纹识别原因检查电池电量时,该扩展会返回随机电池电量。站点可以使用的示例代码如下所示。

navigator.getBattery().then(function(battery) {
    console.log(battery.level);
});

我们无法找到有关如何navigator.getBattery()可以重写方法来实现目标。不完整的 content-script.js 如下所示。

var navigatorBatteryPrivacy = '(' + function() {
    'use strict';
    var navigator = window.navigator;
    var modifiedNavigator;
    if (Navigator.prototype) {


        modifiedNavigator = Navigator.prototype;

    } else {

        modifiedNavigator = Object.create(navigator);
        Object.defineProperty(window, 'navigator', {
            value: modifiedNavigator,
            configurable: false,
            enumerable: false,
            writable: false
        });
    }


    modifiedNavigator.getBattery = function modifiedGetBattery() {
        return Promise.resolve(new BatteryManager());
    };




} + ')();';

var s = document.createElement('script');
s.textContent = navigatorBatteryPrivacy;
document.documentElement.appendChild(s);
s.remove();

我们感谢社区成员的合作。


使用内容脚本,通过以下代码在 document_start 处注入脚本 -

Object.defineProperty(navigator, "getBattery", {
    value: () => {/*your custom logic goes here*/}
});

将以下内容添加到清单 json。

"content_scripts": [{
    "run_at": "document_start",
    "js": ["contentscript.js"]
}]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我们如何覆盖 navigator.getBattery()? 的相关文章

  • 解决方案:动态加载独立编译的 Webpack 2 包 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想分享如何捆绑一个充当插件主机以及它如何加载已安装的插件动态地 应用程序和插件都与 Webpack 捆绑在一起 应用程序和插件被编译和分
  • 突出显示 Html 文档中不同标签的文本

    我是新来的角js 现在我正在突出显示 HTML 文档中的文本 So 我的代码是这样的 var InstantSearch highlight function container highlightText var internalHigh
  • 修复 JSLint“意外的‘this’。”错误?

    我试图让以下代码成为符合 jslint 标准 http jslint com 但我陷入以下两个错误 本来应该看到一个声明 结果却看到了一个块 and 意想不到的 这个 我应该对我的代码进行哪些更改才能使 JSLint 满意 var pvAc
  • 无法实现模块模式

    我正在尝试重现 Douglas Crockford 所著的 Javascript The Good Parts 一书中的一些代码 这个想法是使用闭包进行对象封装并避免Javascript固有的全局变量 var serial maker fu
  • Iphone 上的 Javascript 日期解析

    我正在开发一个针对移动设备的离线 Javascript 网站 iPhone 就是这样的一种移动设备 我正在尝试从 REST API JSON 对象的成员 解析日期 我在用着 Date parse 2010 03 15 10 30 00 这适
  • CSS 比例和方形中心裁剪图像

    所以我的应用程序中有一个缩略图集合 其大小为200x200 有时原始图像没有这个比例 所以我计划将此图像裁剪为正方形 目前它只是拉伸图像以适合缩略图 所以说我的原始图像大小是400x800 那么图像看起来就很压扁 我想裁剪此图像 以便它查看
  • jQuery 无法在外部 JavaScript 中工作

    我是 jQuery 新手 遇到了一些奇怪的问题 我正在使用 jQuery 的change and click方法 在我的 HTML 文件中使用时它们工作正常
  • JavaScript 对象镜像/单向属性同步

    出于安全目的 我需要一个 镜像 对象 也就是说 如果我创建对象 A 并浅克隆 A 的副本并将其称为 B 则每当 A 的属性发生更改时 我希望 B 自动更新自身以反映更改 但反之则不然 换句话说 单向属性同步 我的问题 是否已经存在我不知道的
  • Ng Bootstrap 日期范围选择器 [markDisabled] 不适用于输入

    我正在尝试禁用某些日期ng 引导范围选择器 https ng bootstrap github io components datepicker overview 目前 我在弹出窗口中有一个范围选择器 并且我正在使用 markDisable
  • 无法让 CloudKit 进行身份验证(使用 Javascript 和服务器到服务器密钥)

    我正在尝试使用苹果的cloudkit js文件以建立与 CloudKit 的服务器到服务器连接 然而 尽管配置混乱了几个小时 我似乎无法让 CloudKit 认为我的请求有效 我的配置逻辑非常简单 const privateKeyFile
  • 为什么有人将(Apache mod_expires 参数)ExpiresByType 设置为“访问加 0 秒”?

    在审查答案时这个帖子 https stackoverflow com questions 9933012 how to use mod headers and mod expires to cache 我不明白为什么这里使用 0 秒作为最佳
  • 使用点符号将数字传递到函数中

    如果我有一个对象和函数 var obj 1234 example sample 5678 example sample function example num str if obj num hasOwnProperty str manip
  • 如何在 AWS Amplify 上运行 React/Redux 应用程序的代理

    我最近实施了Proxy 在 Express js 中 对于我的反应应用程序发出请求时隐藏 API URL 当我在本地主机上运行代理和应用程序时 它工作得非常好 现在我已准备好将我的应用程序部署到AWS 放大 我对如何让我的代理在那里运行有点
  • 如何使用 Javascript 从 Chrome iOS 下载 blob 文件?

    如何使用 Javascript 从 Chrome iOS 下载 blob 文件 我正在从 iOS 下载文件 pdf excel txt png iOS 没有文件系统 这对下载来说是一个问题 我创建了一个代码 根据操作系统和导航器 如果需要
  • 如何在javascript中设置从数据库输入的最大数量?

    我希望根据数据库中的数量设置 输入类型 数字 中输入的最大数量 目前 我正在尝试让它在数据最大的基础上工作 然后再尝试从数据库中获取最大值 但它似乎无法工作 之前已经在这里问过 但我仍然无法理解 在 php javascript 中设置数据
  • 如何缩放到高图中的特定点

    Highmaps highcharts 是一个 javascript jquery 适配器 可在浏览器等中呈现地图 我有一张突出显示单个国家 地区的地图 但是 世界 地图的比例如此之大 因此我想在将地图加载到相关国家 地区后进行放大 看看
  • ESLint 如何集成到 Create React App 中?

    当我跑步时npx create react app some name 为我创建了一个简单的 React 项目 当我随后窥视package json 似乎有一些 ESLint 存在的证据 因为有 eslintConfig extends r
  • IE 中带有“删除”方法的 jQuery.ajax 问题

    我有一个页面 用户可以使用按钮编辑各种内容并选择触发 ajax 调用 特别是 一个操作会导致远程调用一个 url 其中包含一些数据和 放置 请求 这 因为我使用的是宁静的 Rails 后端 会触发我的更新操作 我还有一个删除按钮 它调用相同
  • 类型错误:无法读取未定义的属性“长度” - 使用安全帽部署时

    我在尝试在安全帽开发链上部署模拟合约时收到以下错误 我正在关注 使用 JavaScript 学习区块链 Solidity 和全栈 Web3 开发 Patrick Collins 在 FreeCodeCamp YT 频道上的 32 小时课程
  • CSS 未使用 req.params 或其他内容加载

    我对节点 表达等非常陌生 我制作了一个博客应用程序 但遇到了问题 我正在使用 mongoose node express 和 ejs 当我打电话时 router get posts function req res Post find fu

随机推荐

  • 如何在 Google 电子表格中添加标题

    我在用gdata spreadsheet 3 0jar 用于在 Google 电子表格中输入数据 我在用 new ListEntry getCustomElements setValueLocal Header Name Value 但我不
  • 有没有一种简单的方法来扩展现有的激活函数?我的自定义 softmax 函数返回: 操作具有“无”梯度

    我想通过仅使用向量中的前 k 个值来实现使 softmax 更快的尝试 为此 我尝试为张量流实现一个自定义函数以在模型中使用 def softmax top k logits k 10 values indices tf nn top k
  • Angular 2 组件@Input 不起作用

    我一直试图将属性值传递到我的组件中 从我读到的一切看起来都是正确的 但它仍然不起作用 我的测试值以空值输出到屏幕和控制台 这是我的测试组件 import Component Input from angular2 angular2 Comp
  • 如何检查字符串是否是全语法?

    我想创建一个函数 它接受一个字符串作为输入 并检查该字符串是否是全语法 全语法是包含字母表中每个字母的一段文本 我编写了以下代码 该代码有效 但我正在寻找一种替代方法 希望是一种简短的方法 import string def is pang
  • 从 Python 中的 code.interact() 恢复代码执行

    在使用调试时打开交互式控制台后 code interact local locals 我怎样才能恢复代码执行 我已经检查了 代码 模块和搜索堆栈溢出的文档 但找不到任何内容 这与退出任何 Python 解释器会话的方式相同 发送文件结束字符
  • 电话号码格式应该是国际格式,iPhone中是否有用于电话号码验证的正则表达式

    电话号码应该是国际电话号码 用户必须输入带有国家 地区代码的完整电话号码 为此 我需要一个正则表达式来格式化电话号码 对于真正的正则表达式测试使用正则表达式套件精简版 http regexkit sourceforge net RegexK
  • 是否可以在 _LoginPartial.cshtml 中使用 @model ?

    我需要从我的数据库获取一些数据 LoginPartial cshtml 是否可以使用 model in LoginPartial cshtml 或者说它是如何完成的 就在 using WebApp Services然后直接从服务中检索数据
  • OpenCL 编译器预处理定义?

    我正在 Snow Leopard 上开发 OpenCL 代码 并且了解 OpenCL 即时编译是由 Clang LLVM 完成的 是否使用了 C 预处理器 有没有办法使用编译器设置预处理定义 存在哪些定义 我希望代码知道它是为 CPU 还是
  • Java 8 列表到嵌套映射

    我有一个班级名单A like class A private Integer keyA private Integer keyB private String text 我要转让aList嵌套Map映射于keyA and keyB 所以我创
  • 正则表达式的金钱

    I have asp TextBox保持货币价值 即 1000 1000 0 和 1000 00 由于俄罗斯标准 逗号是分隔符 What ValidationExpression我要使用适当的asp RegularExpressionVal
  • 如何指定 RTL 特定的可绘制对象

    我有几张从右到左看起来不同的图像 是否可以创建 rtl 特定的可绘制目录或文件名的一些 rtl 后缀以自动加载相关图像 看起来像 ldrtl 后修复 从 17 级添加 仅适用于布局目录 现在回答这个问题已经很晚了 但我想分享一个我刚刚发现的
  • 有人用 VS2010 RTM 编译 OverviewMargin 吗?

    由于我严重上瘾岩石卷轴 http www hanselman com blog IntroducingRockScroll aspx 我正在寻找一个替代品 https stackoverflow com questions 2672277
  • 让Java文件传输更高效

    我有两台无线计算机连接到 N 个无线路由器 每台 PC 的连接速度都在 108 150Mbps 之间 理论上 在绝对最佳的条件下 我应该能够以 13 5MB s 到 18 75MB s 的速度传输 第一台计算机 正在发送 使用非常快的 SS
  • Android 模拟器上的低功耗蓝牙

    我研究了关于蓝牙低功耗 http developer android com guide topics connectivity bluetooth le html 但我没有支持 BLE 设备进行测试 因此 我想问 Android模拟器支持
  • 如何使用 JavaScript 将图像转换为 Base64 字符串?

    我需要将图像转换为 Base64 字符串 以便可以将图像发送到服务器 有没有相关的 JavaScript 文件 否则 我该如何转换它 您可以选择多种方法 1 方法 FileReader 通过以下方式将图像加载为 blobXMLHttp请求
  • 为什么弹性项目受限于父级尺寸?

    考虑以下示例 body margin 0 box sizing border box parent min height 100vh width 50vw margin 0 auto border 1px solid red display
  • 过滤传出 SignalR Core Hub 消息

    我正在使用 SignalR 和 Net 5 0 并利用集线器过滤器 https learn microsoft com en us aspnet core signalr hub filters view aspnetcore 5 0对我的
  • 如何使批处理文件删除它自己的目录?

    好吧 我很抱歉我对此很陌生 但我试图让我的批处理文件在启动后删除它自己的目录 这是我的文件夹的排列方式 Folder1 删除 bat 我的目标是让 delete bat 在启动 delete bat 后删除 Folder1 这是我的代码 r
  • 等待文件可写

    我正在开发一个将数据写入文件的工具 在某些时候 文件可能会被 锁定 并且在其他句柄关闭之前不可写入 我可以使用CreateFileAPI 处于循环状态 直到文件可用于写入访问 但我有两个问题使用CreateFile循环中 硬盘驱动器 缓存
  • 我们如何覆盖 navigator.getBattery()?

    我们正在编写一个 Chrome 扩展 当运行客户端代码的站点出于指纹识别原因检查电池电量时 该扩展会返回随机电池电量 站点可以使用的示例代码如下所示 navigator getBattery then function battery co