簡體   English   中英

如何在 Firefox WebExtension 中查看后台腳本的 console.log 輸出?

[英]How do I see the console.log output of a background script in a Firefox WebExtension?

有誰知道如何在后台腳本中查看console.log()調用的輸出? 我可以在內容腳本中看到相同的輸出。 這是我正在測試的一個簡單腳本:

這是我的background.js

console.log("Message from background.js");

這是我的manifest.json

{
    "name": "TestBed",
    "manifest_version": 2,
    "version": "1.0",

    "background": {
        "scripts": ["background.js"]
    },

    "browser_action": {
        "default_title": "Click"
    },

    "applications": {
        "gecko": {
            "id": "testbed@example.com",
            "strict_min_version": "48.0a1"
        }
    }
}

我也在后台腳本中嘗試過這個:

chrome.browserAction.onClicked.addListener(function() {
    console.log('Message from background.js onclicked handler');
});

我什至按照其他一些帖子的建議卸載了 Firebug,但這也沒有區別(請注意,內容腳本中的console.log有效)。

有關在控制台中看到擴展輸出的更一般的答案,請參閱我的回答: Google Chrome / Firefox do not see extension output in console

附加調試器

這是您應該用來查看在 WebExtension 的后台上下文中運行的腳本的控制台輸出的內容。 這包括后台腳本、在彈出窗口中運行的腳本、選項頁面以及從擴展程序加載的任何其他頁面,作為選項卡或 iframe 的主 URL。 您可以通過about:debugging ➞Inspect 訪問附加調試器(使用與您正在調試的 WebExtension 相關聯的“Inspect”按鈕;每個擴展都有一個單獨的按鈕)。 這將打開一個帶有調試器的新選項卡。 然后,您可以單擊該瀏覽器選項卡中的控制台選項卡。 此控制台將僅顯示您正在檢查的 WebExtension 中的內容。

瀏覽器控制台

默認情況下,瀏覽器控制台不再顯示來自 WebExtensions 背景頁面輸出。 您可以通過選擇顯示“顯示內容消息”來顯示所有WebExtensions 的輸出,當您單擊窗口右上角的齒輪狀符號“⚙️”時,可以從打開的彈出窗口中找到它,就在“請求”的權利。

您可以在Browser Console中的后台腳本中看到console.log()的輸出。 您可以使用鍵盤快捷鍵Ctrl - Shift - JCmd - Shift - J(在 OSX 上)或從 Firefox 菜單欄:工具➞Web 開發人員➞瀏覽器控制台打開瀏覽器控制台。

在大於或等於 49 的版本中測試 WebExtensions 時, 1我經常濫用錯誤功能導致擴展程序打開瀏覽器控制台。 后台腳本不支持alert()函數,但會打開瀏覽器控制台並在控制台中輸出警報文本。 2這樣做將適用於大於或等於 49.0 的 Firefox 版本。 但是,它會在早期版本的 Firefox 中引發錯誤。

為了測試,我經常在我的后台腳本中包含以下內容:

//* For testing, open the Browser Console
try {
    //alert() is not actually supported in Firefox WebExtension background scripts.
    //This forces the Browser Console open.
    //This abuse of a misfeature works in FF49.0b+, not in FF48.
    alert('Open the Browser Console.');
} catch(e) {
    //alert() throws an error in Firefox versions below 49.
    console.log('alert() threw an error. Probably Firefox version < 49.');
}
//*

  1. 在 Firefox 52.0a2(開發者版)和 53.0a1(Nightly)中有一段時間,它會拋出一個神秘的錯誤。 在這些版本的最新版本中,這已恢復到 Firefox 49 中的功能:打開瀏覽器控制台並顯示傳遞的文本和消息 2(如下)。
  2. 除了傳遞給alert()的文本外,它還將在單獨的行中輸出:“后台窗口不支持alert();請改用console.log。”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM