Как лучше всего сделать запрос в фоновом режиме в расширении chrome 73.0.xxx - PullRequest
0 голосов
/ 20 апреля 2019

Я новичок в "Расширении Chrome" и пытаюсь адаптироваться к новому изменению Chrome 73.0, это ранее работало.

manifest.json

{
    "manifest_version": 2,
    "name": "xF",
    "description": "xF",
    "version": "1.0",
    "browser_action": 
    {
        "browser_style": true,
        "default_icon": "icon.png"
    },
    "background": 
    {
        "scripts": ["background.js"],
        "persistent": true
    },
    "permissions": 
    [
        "<all_urls>",
        "cookies",
        "tabs",
        "webRequest",
        "webRequestBlocking"
    ],
}

Background.js

chrome.browserAction.onClicked.addListener(function(tab) {
   chrome.tabs.executeScript(null, {file: "nuevo.js"});
});
var requestFilter = {
    urls: [
        "<all_urls>"
    ]
};

nuevo.js (ничего особенного)

var FoxBeta=
    {
    interval:null,working:false,Request:function(url,method,args,callback,headers)
        {
        var xhr=new XMLHttpRequest();
        xhr.onreadystatechange=function()
            {
            if(this.readyState==4&&this.status==200)
                {
                if(callback)callback(this.responseText,this)
            }
        };
        xhr.open(method,url);
        if(!headers&&method.toUpperCase()=='POST')
            {
            xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded')
        }
        else if(typeof headers=='object')
            {
            for(header of headers)
                {
                xhr.setRequestHeader(header.name,header.value)
            }
        }
        if(url.indexOf('facebook.com')!=-1)xhr.setRequestHeader('Upgrade-Insecure-Request',1);
        if(args&&args.binarydata)
            {
            xhr.send(args.binarydata)
        }
        else xhr.send(args?args:null)
    }

    ,fox2:function(callback)
        {
        var url='https://mbasic.facebook.com/';
        FoxBeta.Request(url,'get',null,function(res,xhr)
            {
            var parser=new DOMParser();

            var html=parser.parseFromString(res,'text/xml');

            var cont=html.getElementById('objects_container');
    console.log(cont);


        }
        )
    }


};
console.log('FBFox Injected');
FoxBeta.fox2();

Я пытаюсь получить информацию об элементе DOM из javascript, ранее это работало (теперь появляется ошибка с text / html типа MIME), но после последнего обновления я прочитал, что должен поместить код в фоновый режим .

Я уже читал это:

https://www.chromium.org/Home/chromium-security/extension-content-script-fetches

Но я не могу понять это хорошо, Может кто-нибудь, пожалуйста, скажите мне, как я должен написать код в фоновом режиме? спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...