【问题标题】:Microsoft Edge background.js won't print to consoleMicrosoft Edge background.js 不会打印到控制台
【发布时间】:2017-03-03 02:49:16
【问题描述】:

我正在为 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 的开发工具无法做到这一点?

【问题讨论】:

  • 你在看哪个控制台?后台控制台还是网页控制台?当您致电window.print() 时会发生什么?它仅适用于打印机,而不适用于控制台。
  • window.print() 带出打印窗口。它取自微软发布的教程视频。我不知道有后台控制台!我该怎么办?
  • 谢谢!这正是我想要的。

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-29
    • 2011-08-06
    • 2012-02-07
    • 2015-05-04
    • 2016-11-19
    • 2018-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多