Microsoft Edge background.js不会打印到控制台

时间:2017-03-03 02:49:16

标签: javascript debugging console microsoft-edge microsoft-edge-extension

我正在为Edge构建扩展,但我在调试background.js时遇到问题。我根本无法将它打印到控制台。我可以通过content.js打印到控制台。 以下是我尝试过的一些console.log语句:

background.js

console.log("PLEASE PRINT");

browser.browserAction.onClicked.addListener(function(tab) {
    console.log("CLICKED BUTTON");
    browser.tabs.executeScript(null,{code:"window.print()"});
});

browser.tabs.onActivated.addListener(activeInfo => {
    console.log("onActivated listener");
});

browser.tabs.onActivated.addListener(function(activeInfo) {
    console.log("onActivated listener");
});

function printALog() {
    console.log("i pray");
}

function handleActivated(activeInfo) {
  console.log("PLEASE");
}


browser.tabs.onActivated.addListener(handleActivated);
browser.windows.onFocusedChanged.adddListener(handleActivated);
browser.webNavigation.onCompelted.addListener(handleActivated);

我做错了什么或使用Edge的开发人员工具这是不可能的?

1 个答案:

答案 0 :(得分:0)

运行background.js的扩展页面基本上是一个特殊的独立页面。它不与其他网页选项卡共享Windows对象和控制台输出。

在Edge中,可以通过扩展管理菜单检查后台页面(正如Haibara Ai所提到的,这里是link)。您将在那里看到您的控制台输出。

但是请注意,如果您使用manifest.json content_scripts属性将任何扩展脚本注入页面上下文(如果您打算与页面内容进行交互,那么您会希望如此),实际上它们会将该页面上下文用于控制台输出。有时它很有用,但有时你想要将所有日志放在一个地方。在这种情况下,您可以使用browser.runtime.sendMessage将调试消息发送到后台控制台,并在后台页面中将这些消息中继到控制台。