2017-06-12 49 views
0

我想使用webextension記錄錯誤。我都有以下簡單的例子入手:TypeError:browser.webRequest未定義

manifest.json

{ 

    "manifest_version": 2, 
    "name": "testOnErrorWebex", 
    "version": "1.0", 

    "description": "Adds a red border to all webpages matching mozilla.org.", 

    "icons": { 
    "48": "icons/border-48.png" 
    }, 

    "content_scripts": [ 
    { 
     "matches": ["<all_urls>"], 
     "js": ["testOnErrorWebex.js"] 
    } 
    ], 

    "permissions": [ 
    "webRequest" 
] 

} 

而且,內容腳本:testOnErrorWebex.js

console.log("-- inside js file --"); 

var target = "<all_urls>"; 

/* 
e.g., with no network: 
"https://developer.mozilla.org/en-US/" 
NS_ERROR_NET_ON_RESOLVED in Firefox 
net::ERR_INTERNET_DISCONNECTED in Chrome 
*/ 

function logError(responseDetails) { 
    console.log("-- inside logError --"); 
    console.log("inside logError"); 
    console.log(responseDetails.url); 
    console.log(responseDetails.error); 
} 

browser.webRequest.onErrorOccurred.addListener(
    logError, 
    {urls: [target]} 
); 

當我嘗試擴展並加載它,然後鍵入任何不良發生錯誤的URL: 例如,https://doesnotexist/

以下行來自conten牛逼腳本印刷:

-- inside js file -- 

但我得到這個eerro:

TypeError: browser.webRequest is undefined 

回答

2

browser.webRequest是不是在內容的腳本可用。 請嘗試更改testOnErrorWebex.js在後臺運行,你可以在下面的改變清單發現:

{ 

    "manifest_version": 2, 
    "name": "testOnErrorWebex", 
    "version": "1.0", 
    "description": "Adds a red border to all webpages matching mozilla.org.", 
    "background": { 
    "scripts": ["testOnErrorWebex.js"] 
    }, 
    "permissions": [ 
    "webRequest" 
    ] 
} 
+0

這是我得到:'的webRequest.addListener過濾器不與主機permissions'重疊。 – user6875880

+0

它在Ubuntu上的FF 53.0.3中沒有問題。您是否嘗試了與您發佈的代碼不同的內容或只記錄了回覆? –

+0

完全沒有。我複製了你的帖子。我在Nightly 54.上工作。 – user6875880