我们正在编写一个 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(使用前将#替换为@)