【问题标题】:Detecting when a Chrome Extension popup is opened检测 Chrome 扩展弹出窗口何时打开
【发布时间】:2014-10-15 07:31:49
【问题描述】:

我正在尝试根据 docs 将一些分析连接到我的 Chrome 扩展程序的 onStartup 事件中。但是,当通过浏览器中的图标打开扩展程序时,该事件似乎永远不会触发。

请注意,以下代码中的 onInstalled 事件会在安装、重新加载等扩展程序时按预期触发。

chrome.runtime.onInstalled.addListener(function(details) {
  console.log('Extension installed: ' + details.reason);
});
chrome.runtime.onStartup.addListener(function() {
  console.log('Extension started');
});

请注意,我正在运行 Chrome v37 - onStartup 事件自 v23 起可用。

【问题讨论】:

  • 这段代码在哪里,当你“打开”你的扩展时会发生什么?扩展生命周期是 - 每次 Chrome 启动时后台启动一次,每次按下时都会创建和终止弹出窗口(如果存在)。
  • 啊,这是在我的后台脚本中,这解释了为什么我没有看到任何扩展程序打开。要跟踪每个打开的位置,合适的位置在哪里?使用app.run(); 电话?
  • 所以我假设你有一个弹出窗口。然后看到这个答案:stackoverflow.com/questions/25232324/…
  • 做到了。如果您想发布作为答案,我可以奖励它非常感谢。

标签: javascript google-chrome-extension


【解决方案1】:

您正在尝试在打开弹出窗口时调用代码。这与“启动”扩展不同——chrome.runtime.onStartup 事件通常在每次浏览器启动时触发一次。

chrome.browserAction.onClicked 设置弹出页面时不会触发事件;相反,您需要在弹出页面本身中执行一些代码(并且每次打开弹出窗口时都会执行该代码)。

您可以简单地从弹出页面本身发送您的分析事件。或者,如果您更喜欢从后台页面发送,只需message it

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-16
    • 2021-10-20
    • 1970-01-01
    • 2018-10-01
    • 2017-12-29
    相关资源
    最近更新 更多