【问题标题】:Google Chrome extension (Fire a event when extension starts)Google Chrome 扩展程序(扩展程序启动时触发事件)
【发布时间】:2015-01-05 19:46:27
【问题描述】:

我想在我的 chrome 扩展程序启动时触发一个事件。我如何实现这一目标?是否有在扩展启动时触发的事件监听器?

例如:-

chrome.runtime.onInstalled.addListener(function(){
        console.log('i will run once!');
});

与此类似,但不是在安装时而是在启动时,它应该只在扩展程序的运行时间(即它启动时)触发一次。

【问题讨论】:

    标签: javascript google-chrome-extension


    【解决方案1】:

    您可以在 background page 中使用 onload 事件,并将您想要在扩展“启动”中执行的代码放在那里。

    示例(在background.js 内):

    window.onload = function() {
      console.log("Extension has started...");
    };
    

    该消息将在以下情况下被记录(一次):

    • 扩展已安装
    • Chrome 已启动(并且扩展程序已启用)
    • 从禁用状态启用扩展

    【讨论】:

    • 它对我不起作用 D:所以我在清单中添加了 "background":{"scripts":["background.js"]} 并创建了 background.js 并添加了你的 window.onload在那里发挥作用。但我从来没有得到 console.log()。
    • 您在哪里寻找控制台消息?它会发生在后台页面上,您可以使用 chrome://extensions 页面进行检查
    • 我右键单击了 default_popup 页面并检查了元素。这不应该是 console.log() 吗?
    • chrome://extensions 页面上有一个指向“检查视图”的链接。看到这个答案:*.com/a/10082021/845680
    • 这和扩展启动有很大的不同!我称之为“弹出式启动”。但是,您可以重复使用上述想法并将其移至弹出文件。只需将代码移动到您的弹出文件中(在<script></script> 标记内,或者更好的是单独的 JS 文件),它会在每次打开弹出窗口时执行。
    【解决方案2】:

    你的意思是“onStartup”事件吗?

    chrome.runtime.onStartup.addListener(函数回调)

    See Google documentation here

    【讨论】:

    • 不幸的是,这不是我要找的 D: 。我已经尝试过了,但它不起作用,我找到了为什么它不起作用的答案。 *.com/questions/17621545/… 。我想要一个扩展启动时的事件,而不是 chrome 启动时的事件。感谢您的帮助:D。