如何让chrome扩展在页面加载的后台执行功能
How to get chrome extensions to perform function in background on page load?
我正在制作一个chrome扩展来登录wifi系统,目前已经设置好了,他们必须点击该扩展才能登录。但我希望它每30分钟登录一次,使用后台js,我希望它检查我保存的cookie,如果30分钟过去了,然后登录。但它只有在你第一次安装它时才有效。
这是我的宣言.json:
{
"manifest_version": 2,
"name": "BCA Auto Login",
"description": "This extension automatically signs you into the BCA wifi",
"version": "1.0",
"permissions": [ "cookies", "http://*/*", "https://*/*" ],
"content_scripts": [{
"matches": ["http://*/*","https://*/*"],
"js": ["jquery.js","login.js"]
}],
"background": {
"scripts": ["jquery.js", "background.js"]
},
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
}
}
这是我的背景.js:
$(document).ready(function(){
chrome.cookies.get({ url: 'urlofCookie.com', name: 'time' },
//the cookie is a time in minutes
function (cookie) {
if (cookie) {
var current = new Date();
if((current.getMinutes() - cookie) >= 30){
$.ajax({
type : 'POST',
url : 'https://signinURL',
data : {
username: 'username',
password: 'password',
},
success : workedFunction
});
}
}
else{
cookieNotFound();
}
});
});
您只在页面加载时调用该函数,因此难怪之后它不会执行。如果你想定期执行一个操作,你可以使用chrome.alarms API和创建一个警报每30分钟触发一次(除非你也将其用于其他事情,否则你甚至不需要cookie)。
例如:
var wifiAlarmName = "wifiSignIn";
chrome.alarms.create(wifiAlarmName, {
delayInMinutes: 0,
periodInMinutes: 30
});
chrome.alarms.onAlarm.addListener(function(alarm) {
if (alarm.name === wifiAlarmName) {
// Sign in
...
}
});
相关文章:
- JS页面在后台加载时显示动画
- 加载初始网站后在后台加载数据
- 如何在Mozilla插件中检测后台加载的URL
- 在页面加载/刷新时在后台运行扩展
- 在浏览器上显示之前,在后台预加载/刷新页面
- 如何在后台加载图像,然后在完成后显示页面
- 如何加载jQuery后台检查插件
- 如何让chrome扩展在页面加载的后台执行功能
- 正确有效地实现后台加载
- 使用 createHTMLDocument 在后台解析动态加载的文档
- Javascript覆盖,而所有内容都在后台加载
- Chrome 应用/扩展程序 - 后台请求错误,或允许应用问题加载 Google 文档 API
- Firefox加载项从后台/内容脚本访问弹出脚本
- 监控后台图像加载纯javascript
- 在后台加载iframe网站
- 在后台缓存CSS和Javascript,或者从应用程序加载
- 多次加载后台脚本
- 如何在不加载图像/脚本的情况下在后台加载和分析页面
- Jquery监听后台ajax加载后输入字段的变化
- 我想先使用jquery加载后台,但我的代码没有;似乎不起作用