重定向页面如果任何操作重要

时间:2016-12-08 21:13:16

标签: javascript html

我正在尝试使用自助服务终端。在此应用程序中,如果索引页面以post值(index.html?location = 5)打开,除了没有post值的索引页面以及60秒内发生的任何操作(如鼠标悬停或键入),重定向到没有值的索引页面。我正在使用此代码但是..

function setIdle(cb, seconds) {
    var timer; 
    var interval = seconds * 1000;

    function refresh() {
        clearInterval(timer);
        timer = setTimeout(cb, interval);
    };

    $(document).on('keypress, click', refresh);

    $(document).on('mouseover', refresh);

    var parts = location.pathname.split('/');

    if(parts[parts.length - 1] != 'index.html') {
        location.href = 'index.html';
    }

    refresh();
}

setIdle(function() {
    location.href = './index.html';
}, 60);

当我运行此代码时,它是刷新的索引页面,没有任何值。我无法弄清楚我该怎么做?

我想做

如果index.html?location = 5等待60秒进行任何鼠标或键盘操作,则返回index.html

如果index.html不检查鼠标或键盘

1 个答案:

答案 0 :(得分:0)

setIdle()只被调用一次(当页面首次加载时),这就是条件逻辑所在的位置。 refresh()实际上正在进行重定向,但这不在任何if范围内,因此无论您在哪个页面上,它都会被调用。

如果页面为index.html

,为什么不完全忽略空闲功能
function setIdle(cb, seconds) {
    var timer; 
    var interval = seconds * 1000;

    function refresh() {
        clearInterval(timer);
        timer = setTimeout(cb, interval);
    };

    $(document).on('keypress, click', refresh);
    $(document).on('mouseover', refresh);

    refresh();
}

var parts = location.pathname.split('/');

//If page is not index.html
if(parts[parts.length - 1] != 'index.html') {

    //initialize the "idle" functionality
    setIdle(function() {
        location.href = './index.html';
    }, 60);

}