如何在安装chrome扩展时定期检查是否创建了选项卡
How to periodically check whether a tab is created or not, just when the chrome extension is installed
我已经将我的网站设置为chrome扩展。目前,当我点击扩展图标时,它会导航到网站的登录页面。它访问服务器文件,并根据服务器文件的输出设置图标的颜色。现在我需要的是,所有这些操作都是在单击扩展图标时执行的。我希望在chrome中安装扩展时执行这些操作。应该在安装扩展插件时定期检查是否有来自服务器文件的输出。这是我的背景.js
function getGmailUrl() {
return "http://calpinemate.com/";
}
function isGmailUrl(url) {
return url.indexOf(getGmailUrl()) == 0;
}
chrome.browserAction.onClicked.addListener(goToPage);
function goToPage() {
chrome.tabs.query({
url: "http://calpinemate.com/*",
currentWindow: true
}, function(tabs) {
if (tabs.length > 0) {
var tab = tabs[0];
console.log("Found (at least one) Gmail tab: " + tab.url);
console.log("Focusing and refreshing count...");
chrome.tabs.update(tab.id, { active: true });
updateIcon();
} else {
console.log("Could not find Gmail tab. Creating one...");
chrome.tabs.create({ url: getGmailUrl() });
updateIcon();
}
});
}
function updateIcon() {
var req = new XMLHttpRequest();
req.addEventListener("readystatechange", function() {
if (req.readyState == 4) {
if (req.status == 200) {
localStorage.item = req.responseText;
if (localStorage.item == 1) {
chrome.browserAction.setIcon({
path: "calpine_logged_in.png"
});
chrome.browserAction.setBadgeBackgroundColor({
color: [190, 190, 190, 230]
});
chrome.browserAction.setBadgeText({
text: ""
});
} else {
chrome.browserAction.setIcon({
path: "calpine_not_logged_in.png"
});
chrome.browserAction.setBadgeBackgroundColor({
color: [190, 190, 190, 230]
});
chrome.browserAction.setBadgeText({
text:""
});
}
} else {
// Handle the error
alert("ERROR: status code " + req.status);
}
}
});
req.open("GET", "http://blog.calpinetech.com/test/index.php", true);
req.send(null);
}
if (chrome.runtime && chrome.runtime.onStartup) {
chrome.runtime.onStartup.addListener(function() {
updateIcon();
});
} else {
chrome.windows.onCreated.addListener(function() {
updateIcon();
});
}
仍然对onClicked
事件执行所有动作。如何使它在启动事件中执行?
如果要执行定期检查,可以使用chrome.alarms API(与window.setInterval
相比,它也适用于非持久性后台传递)
例如:
在manifest.json
:中
"permissions": [
"alarms",
...
在background.js
:中
...
var checkInterval = 5;
chrome.alarms.create("checkServer", {
delayInMinutes: checkInterval,
periodInMinutes: checkInterval
});
chrome.alarms.onAlarm.addListener(function(alarm) {
if (alarm.name === "checkServer") {
updateIcon();
}
});
相关文章:
- 主干-不管怎样,检查事件以前是否绑定过
- 如何让程序检查所选单词中是否有按键
- 用于检查数组中是否存在元素的javascript自定义方法
- 使用 jQuery 检查所有值是否为空或已填充
- 如何检查元素的内容是否为空,如果为空,请在jquery中删除该元素
- 使用map来检查是否为真'不起作用
- 遍历 JSON 对象并检查 URL 是否以某个值结尾
- 使用onkeyup JS事件检查输入的值是否唯一
- JS数组-检查对象值是否重复
- PhantomJS - 检查javascript函数是否正在运行的任何方法
- 如何使用jQuery可编辑插件检查ajax是否成功完成
- 如何在AngularJS中有效地检查日期是否有效
- 如何检查数组中的对象是否等于选项值
- 检查是否存在使用chrome扩展的javascript库
- 当一些文本粘贴到文本框中时(没有设置超时),是否检查数字
- 如何检查是否检查了分区中的所有单选按钮
- 验证是否检查了1到3个复选框,但id不同
- JavaScript 的类型函数是否检查空值
- 如何知道angularjs中的控制器中是否检查了单选按钮
- 在垃圾收集期间是否检查持久收集