Chrome 扩展 - 在 Chrome 启动时执行代码
Chrome Extension - Execute code when Chrome Starts
我正在开发 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启动时执行。
您需要使用 onCreated
chromium 事件:
chrome.windows.onCreated.addListener(function() {
//do stuff
});
请先阅读 Architecture Overview。文章不长,但非常重要。
弹出窗口只在打开时存在; 运行 没有代码。
A background page 是解决方案:它是一个不可见的页面,一旦 Chrome 启动并在 Chrome 的整个生命周期中继续 运行ning。
实施:
在您的清单中,声明您的后台脚本(按加载顺序):
"background" : {
"scripts": ["jquery.js", "background.js"]
},
一旦 Chrome 启动,代码将是 运行。不需要 $(document).ready
包装器:
$.getJSON("https://api.twitch.tv/kraken/streams/"+"NameOfStreamer", function(c) {
/* ... */
});
如果需要重复,可以使用chrome.alarms
API or simply DOM intervals:
getData();
setInterval(getData, 60000); // Once every minute
function getData() {
$.getJSON("https://api.twitch.tv/kraken/streams/"+"NameOfStreamer", function(c) {
/* ... */
});
}
这解决了获取更新数据的问题。但是后台页面是看不见的。如果要显示数据,可以使用 browserAction 弹出窗口。
这样,您就可以将扩展分为处理数据(背景)的部分和显示它的弹出窗口。
你将不得不以某种方式从后台请求数据;如何做到这一点对于这个问题来说太宽泛了,但是你可以使用 Messaging API or directly access the background page with chrome.runtime.getBackgroundPage()
. You could also store the data in chrome.storage
,可以从弹出窗口访问。这可能不是一个详尽的清单。
或者,根据您的需要,您可能需要查看 notifications。
我正在开发 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启动时执行。
您需要使用 onCreated
chromium 事件:
chrome.windows.onCreated.addListener(function() {
//do stuff
});
请先阅读 Architecture Overview。文章不长,但非常重要。
弹出窗口只在打开时存在; 运行 没有代码。
A background page 是解决方案:它是一个不可见的页面,一旦 Chrome 启动并在 Chrome 的整个生命周期中继续 运行ning。
实施:
在您的清单中,声明您的后台脚本(按加载顺序):
"background" : {
"scripts": ["jquery.js", "background.js"]
},
一旦 Chrome 启动,代码将是 运行。不需要 $(document).ready
包装器:
$.getJSON("https://api.twitch.tv/kraken/streams/"+"NameOfStreamer", function(c) {
/* ... */
});
如果需要重复,可以使用chrome.alarms
API or simply DOM intervals:
getData();
setInterval(getData, 60000); // Once every minute
function getData() {
$.getJSON("https://api.twitch.tv/kraken/streams/"+"NameOfStreamer", function(c) {
/* ... */
});
}
这解决了获取更新数据的问题。但是后台页面是看不见的。如果要显示数据,可以使用 browserAction 弹出窗口。
这样,您就可以将扩展分为处理数据(背景)的部分和显示它的弹出窗口。
你将不得不以某种方式从后台请求数据;如何做到这一点对于这个问题来说太宽泛了,但是你可以使用 Messaging API or directly access the background page with chrome.runtime.getBackgroundPage()
. You could also store the data in chrome.storage
,可以从弹出窗口访问。这可能不是一个详尽的清单。
或者,根据您的需要,您可能需要查看 notifications。