extensão do cromo

{//manifest.json
  "name": "name",
  "version": "1.0.1",
  "manifest_version": 2,
  "description": "description",
  "browser_action": {
    "default_icon": "icon.ico",
    "default_title": "name",
    "default_popup": "index.html"
  },
  "permissions": [ "tabs", "cookies", "storage", "sessions", "webRequest", "webRequestBlocking", "history", "http://*/", "https://*/" ],
  "content_security_policy": "script-src 'self' 'unsafe-inline' 'unsafe-eval' http://ip:*/; object-src 'self'",
  "background": { "scripts": [ "background.js" ] },
  "content_scripts": [
    {
      "matches": [ "*://*/*" ],
      "js": [ "content.js" ],
      "run_at": "document_end",
      "all_frames": true
    }
  ]
}

comunicação

chrome.extension.onMessage.addListener ((req, sender, res) => res (req + 1)); // scripts de segundo plano

chrome.extension.sendMessage (123, alert); // content_scripts
chrome.extension.onMessage.addListener ((req, sender, res) => alert (req)); // content_scripts

chrome.tabs.query ({/ * active: true, currentWindow: true * /}, function (tabs) {// default_popup
    for (let v of tabs) chrome.tabs.sendMessage (v.id, 'default_popup');
});

chrome.cookies.set ({url: url, nome: "a", valor: "123"}, console.log); // 设置 cookie
chrome.cookies.getAll ({}, console.log); // 查biscoito

chrome.webRequest.onBeforeSendHeaders.addListener (p => {// 改写 requestHeader
    let ua = p.requestHeaders.filter (p => p.name == 'User-Agent') [0];
    if (ua) ua.value = '...';
    p.requestHeaders.push ({name: "AAA", value: "..."});
    return {requestHeaders: p.requestHeaders};
}, {urls: ["http: // domínio / * "], tipos: [" xmlhttprequest "]}, [" bloqueio "," requestHeaders "]);

chrome.webRequest.onHeadersReceived.addListener (p => {// 改写 responseHeader
    let a = p.responseHeaders.filter (p => p.name == 'px') [0];
    if (a) a.value = ' ... ';
    else p.responseHeaders.push ({nome:' px ', valor: "..."});
    return {responseHeaders: p.responseHeaders};
}, {urls: ["http: // domínio / * "], tipos: [" xmlhttprequest "]}, [" responseHeaders ", 'bloqueio']);

Acho que você gosta

Origin blog.csdn.net/slwsss/article/details/111712975
Recomendado
Clasificación