插件如何监听Firefox从HTML页面请求的HTTP标头?

时间:2015-10-20 09:33:36

标签: firefox-addon firefox-addon-sdk

我需要通过代理的Firefox html页面请求,以及页面上的所有其他内容 - 图片,样式,视频,音乐,flash等,无需代理即可请求。
我创建:

  • 函数proxy(type,http,port,no_proxies)

    var prefsvc = require("sdk/preferences/service");
    function proxy(type,http,port,no_proxies) {
        prefsvc.set("network.proxy.type", type);
        prefsvc.set("network.proxy.http", http);
        prefsvc.set("network.proxy.http_port", port);
        prefsvc.set("network.proxy.no_proxies_on", no_proxies);}
    


  • 按钮:
    var button = require('sdk/ui/button/action').ActionButton({id: "proxy-button", label: "Proxy Button", icon: {"16": "./icon-16.png"}, onClick: handleClick});

  • 一个函数handleClick(state),即:

    var tabs = require("sdk/tabs");
    var Request = require("sdk/request").Request;
    function handleClick(state) {
    

    打开一个新标签:
    tabs.open("https://developer.mozilla.org/");

    此标签的网址请求Content-Type - 来自目标服务器的标头,如果它与html - 标题(text/html)的标题一致,则更改Firefox的代理,如果请求不是html - 页面,则代理被禁用:

    Request({url: tabs.activeTab.url, onComplete: function (response) {
    'text/html'==response.headers['Content-Type'].split(';',1) 
    ? proxy(1,"192.168.56.101",8880,"localhost, 127.0.0.1, 192.168.1.1")
    : proxy(5,'','','');
    }}).head();}
    


  • 现在的问题是:
    如何收听来自页面链接的所有http请求?
    谢谢。

    < / p>

    0 个答案:

    没有答案