gpt4 book ai didi

jquery - Chrome 扩展 - Chrome 启动时执行代码

转载 作者:行者123 更新时间:2023-12-01 03:37:35 26 4
gpt4 key购买 nike

我正在开发 Chrome 扩展,并且正在研究如何在 Chrome 启动时执行代码。

我有这些文件:

script.js
index.html
manifest.json

在 script.js 中我有:

$(document).ready(function() {
$.getJSON("https://api.twitch.tv/kraken/streams/"+"NameOfStreamer",function(c) {
if (c.stream == null) {
...
} else {
...
}
});
});

我不想在 HTML 渲染完成时执行此代码,而是在 Chrome 首先启动时执行此代码,然后每分钟重新运行一次。

这与 $(document).ready() 的想法相同,但在 Chrome 启动时执行。

最佳答案

请首先阅读Architecture Overview 。这篇文章不长,但极其重要。

弹出窗口仅在打开时存在;不运行时没有代码可运行。

一个background page解决方案是:它是一个不可见的页面,在 Chrome 启动时立即创建,并在 Chrome 的整个生命周期中持续运行。

<小时/>

实现:

在您的 list 中,声明您的后台脚本(按加载顺序):

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

Chrome 启动后,代码就会立即运行。不需要 $(document).ready 包装器:

$.getJSON("https://api.twitch.tv/kraken/streams/"+"NameOfStreamer", function(c) {
/* ... */
});

如果需要重复,可以使用 chrome.alarms API或者简单地 DOM intervals :

getData();
setInterval(getData, 60000); // Once every minute

function getData() {
$.getJSON("https://api.twitch.tv/kraken/streams/"+"NameOfStreamer", function(c) {
/* ... */
});
}
<小时/>

这就解决了获取更新数据的问题。但背景页是不可见的。如果您想显示数据,可以使用 browserAction 弹出窗口。

这样,您就可以将扩展程序分为处理数据的部分(背景)和显示数据的弹出窗口。

你必须以某种方式从后台请求数据;对于这个问题来说,如何做到这一点太宽泛,但您可以使用 Messaging API或者直接输入chrome.runtime.getBackgroundPage()进入后台页面。您还可以将数据存储在 chrome.storage 中,可从弹出窗口访问。这可能不是一个详尽的列表。

或者,根据您的需求,您可能需要查看 notifications .

关于jquery - Chrome 扩展 - Chrome 启动时执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29775361/

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