gpt4 book ai didi

javascript - 为什么我的 Google 扩展似乎仅在我观察后台脚本控制台时才开始执行

转载 作者:行者123 更新时间:2023-11-28 13:29:10 25 4
gpt4 key购买 nike

我希望我的 Google 扩展程序在 Google Chrome 窗口打开后立即开始执行。我的background.js中有以下代码:

if (window.Notification) {
setInterval( function() { callAutomate(); }, 60000 );
}

function callAutomate() {
// Code to automate hello-hello.com
}

list 文件如下 -

{
"name" : "Hello.co Extension",
"version" : "1.1",
"description" : "Say Hello",
"background" :
{
"scripts": ["background.js"],
"persistent": false
},
"page_action" :
{
"default_icon" : "hello-19.png",
"default_title": "Hello World",
"default_popup": "popup.html"
},
"content_scripts": [
{
"matches": ["https://www.hellohello.com/*"],
"js": [
"content.js",
"webDB.js"
]
}
],
"permissions": [
"tabs",
"storage",
"unlimitedStorage",
"webNavigation",
"notifications",
"https://www.hellohello.com/"
],
"options_page": "options.html",
"icons" : {
"48" : "hello-48.png",
"128" : "hello-128.png"
},
"manifest_version": 2,
"web_accessible_resources": [
"hello-48.png"
]
}

这是我的问题 callAutomate();函数似乎仅在我观察background.js 的控制台日志时才被调用。然而,扩展的预期行为是调用 callAutomate();从 Google Chrome 窗口打开后每隔一分钟运行一次。

任何有关解释性代码的帮助将不胜感激。

最佳答案

Chrome extension documentation 中所述,有2种类型的背景页面:

  • 持久后台页面:始终“打开”
  • 事件背景页面:根据需要“打开和关闭”

您正在使用第二个,如您的manifest.json 文件中的"persistent": false 所指定,因此,当您正常加载页面时,后台代码不会自行执行。
而且我非常确定,当您在后台页面上使用开发人员工具(“观察控制台”)时,页面会“打开”,并且在控制台保持打开状态时不会关闭。

通过删除"persistent": false,您的代码将被执行。

但正如文档中所建议的,您应该尽可能多地使用事件页面,因此请查看 lifetime documentation查看与后台页面通信的不同方式,从而执行所需的代码。

关于javascript - 为什么我的 Google 扩展似乎仅在我观察后台脚本控制台时才开始执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26494403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com