Javascript重定向和重置计时器
新手到JS。使用倒计时和警报 尝试创建一个警报,该警报在不活动5秒后弹出,当单击Javascript重定向和重置计时器,javascript,google-chrome-extension,timer,Javascript,Google Chrome Extension,Timer,新手到JS。使用倒计时和警报 尝试创建一个警报,该警报在不活动5秒后弹出,当单击Yes时,您将被重定向到某个URL。单击Cancel时,计时器将重置,您可以停留在页面上(直到计时器用完等) 该代码将在Google扩展中使用 到目前为止,我的代码如下-我已经疯了JS小提琴。单击“取消”时,计时器重置不起作用 如果有人能提供任何建议,我将不胜感激 Mymyscript.js var div = document.createElement("div"); div.id = "timer"; div
Yes
时,您将被重定向到某个URL。单击Cancel
时,计时器将重置,您可以停留在页面上(直到计时器用完等)
该代码将在Google扩展中使用
到目前为止,我的代码如下-我已经疯了JS小提琴。单击“取消”时,计时器重置不起作用
如果有人能提供任何建议,我将不胜感激
Mymyscript.js
var div = document.createElement("div");
div.id = "timer";
div.style.width = "100px";
div.style.height = "100px";
div.style.background = "red";
div.style.color = "white";
div.style.position = "fixed";
div.style.top = "50%";
div.style.left = "50%";
div.innerHTML = "Hello";
document.body.appendChild(div);
var IDLE_TIMEOUT = 5; //seconds
var _idleSecondsTimer = null;
var _idleSecondsCounter = 0;
document.onclick = function () {
_idleSecondsCounter = 0;
};
document.onmousemove = function () {
_idleSecondsCounter = 0;
};
document.onkeypress = function () {
_idleSecondsCounter = 0;
};
_idleSecondsTimer = window.setInterval(CheckIdleTime, 1000);
function CheckIdleTime() {
_idleSecondsCounter++;
var oPanel = document.getElementById("timer");
if (oPanel) oPanel.innerHTML = (IDLE_TIMEOUT - _idleSecondsCounter) + "";
if (_idleSecondsCounter >= IDLE_TIMEOUT) {
window.clearInterval(_idleSecondsTimer);
if (confirm('You are being redirected due to inactivity - click Cancel for more time, or OK to go to home page?')) {
//test go to google
document.location.href = "http://www.google.com";
} else {
//reset the timer to 5
}
}
}
我的manifest.json
如下所示
{
"update_url": "https://clients2.google.com/service/update2/crx",
"manifest_version": 2,
"name": "Idle Reset",
"description": "Reset the browser to a single tab pointing at the home page when idle.",
"version": "1.0.3",
"background": {
"scripts": ["eventPage.js"],
"persistent": false
},
"permissions": [
"tabs",
"idle"
],
"options_page": "options.html",
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["zepto.min.js", "kiosk.js", "myscript.js"],
"css": [ "reset.css"]
}
]
}
{
“更新url”:https://clients2.google.com/service/update2/crx",
“清单版本”:2,
“名称”:“空闲重置”,
“说明”:“将浏览器重置为空闲时指向主页的单个选项卡。”,
“版本”:“1.0.3”,
“背景”:{
“脚本”:[“eventPage.js”],
“持续”:假
},
“权限”:[
“标签”,
“闲置”
],
“选项页面”:“options.html”,
“内容脚本”:[
{
“匹配项”:[“”],
“js”:[“zepto.min.js”、“kiosk.js”、“myscript.js”],
“css”:[“reset.css”]
}
]
}
在@sdespont的帮助下,我通过一些修改使它正常工作
工作代码为
var div = document.createElement("div");
div.id = "timer";
div.style.display = "none";
div.style.width = "200px";
div.style.height = "200px";
div.style.background = "red";
div.style.color = "white";
div.style.position = "fixed";
div.style.top = "80%";
div.style.left = "50%";
document.body.appendChild(div);
var timeoutID;
var timerID;
var idleTimeout = 5;
var idleSecondsTimer = null;
var idleSecondsCounter = 0;
function setup() {
this.addEventListener("mousemove", resetTimer, false);
this.addEventListener("mousedown", resetTimer, false);
this.addEventListener("keypress", resetTimer, false);
this.addEventListener("DOMMouseScroll", resetTimer, false);
this.addEventListener("mousewheel", resetTimer, false);
this.addEventListener("touchmove", resetTimer, false);
this.addEventListener("MSPointerMove", resetTimer, false);
startTimer();
}
setup();
function startTimer() {
// wait 2 seconds before calling goInactive
timeoutID = setTimeout(goInactive, 2000);
}
function resetTimer(e) {
clearTimeout(timeoutID);
clearTimeout(timerID);
goActive();
}
function goInactive() {
idleSecondsCounter = 0;
div.style.display = "block";
div.innerHTML = "Inactivity detected. Redirecting in ...<span id='countdown'>" + (idleTimeout - idleSecondsCounter) + "</span> ...please touch screen to close this message";
// show a count down here then redirect to google.com
timerID = setInterval(function(){
idleSecondsCounter++;
if(idleSecondsCounter >= 6) {
clearTimeout(timerID);
window.location.href = "http://google.com";
} else {
document.getElementById("countdown").innerHTML = (idleTimeout - idleSecondsCounter);
}
}, 1000);
}
function goActive() {
div.style.display = "none";
startTimer();
}
var div=document.createElement(“div”);
div.id=“计时器”;
div.style.display=“无”;
div.style.width=“200px”;
div.style.height=“200px”;
div.style.background=“红色”;
div.style.color=“白色”;
div.style.position=“固定”;
div.style.top=“80%”;
div.style.left=“50%”;
文件.正文.附件(div);
var-timeoutID;
var-timerID;
var idleTimeout=5;
var idleSecondsTimer=null;
var idleSecondsCenter=0;
函数设置(){
addEventListener(“mousemove”,resetTimer,false);
这个.addEventListener(“mousedown”,resetTimer,false);
此.addEventListener(“按键”,重置计时器,错误);
这个.addEventListener(“DOMMouseScroll”,resetTimer,false);
此.addEventListener(“鼠标滚轮”,重置计时器,false);
此.addEventListener(“touchmove”,resetTimer,false);
此.addEventListener(“MSPointerMove”,resetTimer,false);
startTimer();
}
设置();
函数startTimer(){
//请等待2秒钟后再调用goInactive
timeoutID=设置超时(goInactive,2000);
}
功能重置计时器(e){
clearTimeout(timeoutID);
清除超时(timerID);
目的性();
}
函数goInactive(){
IDLESecondsCenter=0;
div.style.display=“块”;
div.innerHTML=“检测到不活动。重定向到…”+(idleTimeout-idleSecondsCenter)+“…请触摸屏幕关闭此消息”;
//在此处显示倒计时,然后重定向到google.com
timerID=setInterval(函数(){
idleSecondsCenter++;
如果(IDLESecondsCenter>=6){
清除超时(timerID);
window.location.href=”http://google.com";
}否则{
document.getElementById(“倒计时”).innerHTML=(idleTimeout-idleSecondsCenter);
}
}, 1000);
}
函数goActive(){
div.style.display=“无”;
startTimer();
}
该代码是如何执行的?这是一辆汽车吗?如果你被杀了怎么办?发布manifest.json的内容包含发布代码的文件名是什么?