谷歌铬扩展:: console.log()从后台页面?

如果我打电话给console.log('something'); 从弹出页面,或包括任何脚本,它工作正常。

但是,由于背景页面并非直接从弹出页面运行,因此它不包含在控制台中。

有没有办法让我可以在后台页面中获取console.log()以在弹出页面的控制台中显示?

有没有办法从背景页面调用弹出页面中的函数?


任何扩展页面(内容脚本除外)都可以通过chrome.extension.getBackgroundPage()直接访问后台页面。

这意味着,在弹出页面中,您可以执行以下操作:

chrome.extension.getBackgroundPage().console.log('foo');

为了使它更容易使用:

var bkg = chrome.extension.getBackgroundPage();
bkg.console.log('foo');

现在如果你想在内容脚本中做同样的事情,你必须使用消息传递来实现这一点。 原因是,他们都属于不同的领域,这是有道理的。 消息传递页面中有很多示例供您检查。

希望清除一切。


在这里抛出明显的答案以防万一。 你知道你可以打开后台页面的控制台,如果你点击扩展列表中的“background.html”链接,对吧?

编辑

要访问与您的扩展相对应的后台页面,请打开Settings / Extensions或打开新标签并输入chrome://extensions 。 你会看到类似这样的截图。

Chrome扩展程序对话

在您的扩展下,点击链接background page 。 这将打开一个新窗口。 对于上下文菜单示例窗口具有标题: _generated_background_page.html


要直接回答您的问题,当您从后台调用console.log("something") ,会将此消息记录到后台页面的控制台。 要查看它,你可以去chrome://extensions/并点击你的扩展下的inspect view

当您单击弹出窗口时,它会加载到当前页面,因此console.log应该在当前页面中显示日志消息。

链接地址: http://www.djcxy.com/p/16189.html

上一篇: google chrome extension :: console.log() from background page?

下一篇: Is there a way to get the xpath in google chrome?