Javascript重定向和重置计时器

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

新手到JS。使用倒计时和警报

尝试创建一个警报,该警报在不活动5秒后弹出,当单击
Yes
时,您将被重定向到某个URL。单击
Cancel
时,计时器将重置,您可以停留在页面上(直到计时器用完等)

该代码将在Google扩展中使用

到目前为止,我的代码如下-我已经疯了JS小提琴。单击“取消”时,计时器重置不起作用

如果有人能提供任何建议,我将不胜感激

My
myscript.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的内容包含发布代码的文件名是什么?