谷歌浏览器扩展 :: 控制台.log() 从后台页面?

如果我从弹出页面调用,或者包含的任何脚本,它都可以正常工作。console.log('something');

但是,由于后台页面不会直接在弹出页面中运行,因此它不会包含在控制台中。

有没有办法让 后台页面中的 's 显示在弹出页面的控制台中?console.log()

有没有办法,从后台页面调用弹出页面中的函数?


答案 1

如果单击扩展列表中的“后台.html”链接,则可以打开后台页面的控制台。

要访问与您的扩展程序对应的后台页面,请打开或打开新选项卡并输入 。您将看到类似此屏幕截图的内容。Settings / Extensionschrome://extensions

Chrome extensions dialogue

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


答案 2

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

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

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

要使其更易于使用,请执行以下操作:

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

现在,如果您想在内容脚本中执行相同的操作,则必须使用消息传递来实现此目的。原因是,它们都属于不同的领域,这是有道理的。“消息传递”页面中有许多示例供您查看。

希望清除一切。