问题描述
我正在开发铬扩展剂。
我想通过使用chrome-webrequest API重写http标头来更改浏览器的UserAgent,但是出了点问题...
我希望这些代码的行为符合预期,但我不知道该怎么办。
我可以给我建议吗?
class browserConfig {
apply (userAgent,language) {
let targetURL = "<all_urls>"
function rewriteHeader(e) {
e.requestHeaders.forEach(function(header){
let headerName = header.name.toLowerCase();
if (headerName === "user-agent") {
header.value = userAgent;
}
});
return {requestHeaders: e.requestHeaders};
}
chrome.webRequest.onBeforeSendHeaders.addListener(
rewriteHeader,{urls: [targetURL]},["blocking","requestHeaders","extraHeaders"]
);
}
background.js
import browserConfig from 'pass/to/browserConfig.js'
const browserConfig = new browserConfig()
// browserOptions example... {userAgent: HeadlessChrome}
chrome.storage.local.get('browserOptions',({ browserOptions }) => {
this.browserConfig.apply(browserOptions.userAgent)
})
预期行为
每次将browserOption,UserAgent设置为所需的
例如。
第一: browserOption = {userAgent:Headlessbrowser} => userAgent:Headlessbrowser
第二: browserOption = {userAgent:aaaaaa} => userAgent:aaaaaa
实际行为
仅一次,我可以将UserAgent更改为所需。 但是,从第二次开始,我无法更改它。
例如。
第一: browserOption = {userAgent:Headlessbrowser} => userAgent:Headlessbrowser
第二名〜: browserOption = {userAgent:aaaaaa} => userAgent:Headlessbrowser
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)