Javascript 浏览器启动时的Chrome扩展操作

Javascript 浏览器启动时的Chrome扩展操作,javascript,google-chrome,events,google-chrome-extension,Javascript,Google Chrome,Events,Google Chrome Extension,我有一个运行各种内容和背景脚本的chrome扩展,我很好奇是否有一个“浏览器启动”动作我可以听并执行 例如,在我的应用程序中,我在每次加载页面时都会运行一些基本脚本(在内容脚本中);但是如果有一种方法可以让我只在浏览器第一次打开时运行一个操作,那么效率会更高 我一直在四处阅读,试图找到一些东西,但找不到类似的东西。如蒙指导或协助,将不胜感激。提前感谢您抽出时间。我建议您阅读背景页。 简而言之,每个扩展名只存在一次后台页面,并且在创建新选项卡时,仍将只有一个实例在运行。在清单文件中,您在“后台”

我有一个运行各种内容和背景脚本的chrome扩展,我很好奇是否有一个“浏览器启动”动作我可以听并执行

例如,在我的应用程序中,我在每次加载页面时都会运行一些基本脚本(在内容脚本中);但是如果有一种方法可以让我只在浏览器第一次打开时运行一个操作,那么效率会更高


我一直在四处阅读,试图找到一些东西,但找不到类似的东西。如蒙指导或协助,将不胜感激。提前感谢您抽出时间。

我建议您阅读背景页。


简而言之,每个扩展名只存在一次后台页面,并且在创建新选项卡时,仍将只有一个实例在运行。

在清单文件中,您在“后台”中定义的文件将在“扩展名级别”运行。这或多或少是浏览器级别(即不是每个选项卡)

您的清单文件应包括以下内容:

  "background": {
    "scripts": ["extension.js"]
  },

现在,extension.js中的任何内容都将在浏览器启动时运行一次。您不需要显式地侦听代码中的事件,浏览器将在加载扩展后立即运行它。您可以在extensions.js中放置一个
console.log('started')
或其他内容,然后检查“后台页面”(从扩展页面)控制台,看看它是否确实只运行一次。

David Glibertson的回答对我不起作用

另外,请注意,这是推荐的背景页面类型,它们的行为不同,因此请确保您理解其中的差异。
chrome.runtime.onStartup.addListener(function() {
  console.log('open');
})