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

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

我正在为 Edge 构建一个扩展,但在调试 back.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 的开发人员工具无法实现此目的?

最佳答案

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

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

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

关于javascript - Microsoft Edge background.js 不会打印到控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42569751/

相关文章:

javascript - ReactJS - 如何在窗口上设置属性?

javascript - 我们可以改变react + graph中节点的颜色吗

javascript - 延迟后如何在 window.onload 中加载 javascript 函数

windows - 如何研究 "frozen"windows系统的问题

iphone - 核心数据: Errors vs Exceptions Part 2

python - 在Python中将数据输出顺序打印为格式化表格

javascript - 将数组值附加到所选元素的 ID 属性

c - 调试器对嵌入式应用程序的影响

string - 使用 PowerShell sls (Select-String) vs grep vs findstr

C# 如何循环用户输入直到输入的数据类型正确?