微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试开发Chrome扩展程序以自由更改UserAgent,但效果不佳

如何解决尝试开发Chrome扩展程序以自由更改UserAgent,但效果不佳

我正在开发铬扩展剂。

我想通过使用chrome-webrequest API重写http标头来更改浏览器的UserAgent,但是出了点问题...

我希望这些代码的行为符合预期,但我不知道该怎么办。

我可以给我建议吗?

browserConfig.js

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 举报,一经查实,本站将立刻删除。