zoukankan      html  css  js  c++  java
  • js:浏览器插件

    1、chrome

    background.js

    //chrome.webRequest.onBeforeRequest.addListener(function(info) {
    //    chrome.tabs.executeScript({code: 'console.log("' + info.url + '")'});
    //    chrome.tabs.getSelected(null, function(tab) {
    //        chrome.tabs.sendMessage(tab.id, info.url);
    //    });
    //    return;
    //},{urls: ["<all_urls>"]}, ["blocking"]);
    
    chrome.webRequest.onCompleted.addListener(function(info) {
        //chrome.tabs.executeScript({code: 'console.log("' + info.url + '")'});
        chrome.tabs.getSelected(null, function(tab) {
            chrome.tabs.sendMessage(tab.id, info.url);
        });
        return;
    },{urls: ["<all_urls>"]});
    
    
    chrome.webRequest.onErrorOccurred.addListener(function(info) {
        //chrome.tabs.executeScript({code: 'console.log("' + info.url + '")'});
        chrome.tabs.getSelected(null, function(tab) {
            chrome.tabs.sendMessage(tab.id, "!" + info.error + "!" + info.url);
        });
        return;
    },{urls: ["<all_urls>"]});

    content.js

    console.log("content.js");
    
    chrome.runtime.onMessage.addListener(function(msg, sender, sendResponse) {
        console.log(msg);
        document.body.text += msg + "
    ";
    });

    manifest.json

    {
      "name": "test",
      "version": "1.0",
      "description": "Test",
      "background": {
        "persistent": true, 
        "scripts": ["background.js"]
      },
      "content_scripts": [
        {
          "js": ["content.js"],
          "matches": ["http://*/*", "https://*/*"], 
          "run_at": "document_start"
        }
      ],
      "permissions": [
        "tabs", 
        "<all_urls>",
        "webRequest", 
        "webRequestBlocking"
      ],
      "manifest_version": 2
    }

    【另外chrom浏览器插件的编写学习见:https://www.cnblogs.com/champagne/p/4848520.html】

    2、firefox

    background.js

    //browser.webRequest.onBeforeRequest.addListener(function(info) {
    //    browser.tabs.executeScript({code: 'console.log("' + info.url + '")'});
    //    return;
    //},{urls: ["<all_urls>"]}, ["blocking"]);
    
    browser.webRequest.onCompleted.addListener(function(info) {
        //chrome.tabs.executeScript({code: 'console.log("' + info.url + '")'});
        browser.tabs.query({currentWindow: true,active: true}).then(function (tabs){
            for (let tab of tabs) {
                browser.tabs.sendMessage(tab.id,info.url);
            }
        });
        return;
    },{urls: ["<all_urls>"]});
    
    browser.webRequest.onErrorOccurred.addListener(function(info) {
        //chrome.tabs.executeScript({code: 'console.log("!' + info.url + '")'});
        browser.tabs.query({currentWindow: true,active: true}).then(function (tabs){
            for (let tab of tabs) {
                browser.tabs.sendMessage(tab.id,"!" + info.error + "!" + info.url);
            }
        });
        return;
    },{urls: ["<all_urls>"]});

    content.js

    //console.log("content.js");
    
    browser.runtime.onMessage.addListener(function(msg, sender, sendResponse) {
        console.log(msg);
        document.body.text += msg + "
    ";
    });

    manifest.json

    {
        "manifest_version": 2,
        "name": "adtest",
        "version": "1.0",
        "description": "get urlinfo where access a website",
        "background": {
            "scripts": ["background.js"]
        },
        "content_scripts": [
            {
              "js": ["content.js"],
              "matches": ["http://*/*", "https://*/*"], 
              "run_at": "document_start"
            }
        ],
        "permissions": [
            "tabs", 
            "<all_urls>",
            "webRequest", 
            "webRequestBlocking"
        ],
        "applications": {
           "gecko": {
                "id": "borderify@example.com"
           }
        }
    }
    每天努力一点,每天学习一点。 Keep Moving...
  • 相关阅读:
    C#实现仪器的自动化控制
    .Net FrameWork常用类
    编码:隐匿在计算机软硬件背后的语言(8)--自动操作(三)
    深入理解计算机系统(4)-- 整数和浮点数
    编码:隐匿在计算机软硬件背后的语言(8)--自动操作(二)
    C#中二进制、十进制和十六进制互相转换的方法
    深入理解计算机系统(3)-- 信息存储
    mysql-5.7.17-winx64免安装版环境配置 问题小记
    python生成随机数:uniform(), randint(), gauss(), expovariate()
    深度学习翻译 效果优于各类翻译器
  • 原文地址:https://www.cnblogs.com/channy14/p/9144310.html
Copyright © 2011-2022 走看看