我有两个标签。一个是主页选项卡,另一个是主页1选项卡。在这里,我跟踪登录到登出时间的时间计数。我在一个java脚本文件中有以下代码。这项工作作为两个实例。
主页标签 - > www.example.com/home //(我的java脚本文件包含此目录)第一个实例。
home-1标签 - > www.example.com/home-1 //(必需的脚本文件包含从主页选项卡到此选项卡)第二个实例。
任何键/鼠标事件都会重置计数器。
var sestmout=0;
var idletm=60*1;
var idletmcntr=0;
var idletimeout=null;
var lastUpdate1 = new Object();
var lastUpdate = 0;
var curdttm = new Date();
$(document).ready(function(){
initidletm();
});
lastUpdate1.cntr = idletmcntr;
lastUpdate1.ctme = curdttm.getMilliseconds();
lastUpdate1.time = curdttm.getTime();
function reset_cnt(){
if(idletmcntr != 0){
curdttm = new Date();
lastUpdate1.cntr = idletmcntr;
lastUpdate1.ctme = curdttm.getMilliseconds();
lastUpdate1.time = curdttm.getTime();
var a = moment();
lastUpdate1.utme = a.valueOf();
}
idletmcntr=0;
}
document.onclick=function(){
reset_cnt();
};
document.onmousemove=function(){
reset_cnt();
};
document.onkeypress=function() {
reset_cnt();
};
在每个标签中,我在java脚本文件中包含上面的行。现在,我在主页选项卡上触发鼠标/键事件,在主页-1选项卡中重置计数器值。
使用此代码。
function initidletm(){
if(window.name == "home-1"){
window.opener.document.onkeypress = document.onkeypress;
window.opener.document.onclick = document.onclick;
window.opener.document.onmousemove = document.onmousemove;
}else if(window.name == "home-2"){
window.opener.document.onkeypress = document.onkeypress;
window.opener.document.onclick = document.onclick;
window.opener.document.onmousemove = document.onmousemove;
}
else{ // home tab
document.onkeypress=function() {
reset_cnt();
};
document.onclick=function() {
reset_cnt();
};
document.onmousemove=function() {
reset_cnt();
};
}
}
clearTimeout(idletimeout);
idletimeout=setTimeout(trackidletm,1000);
function trackidletm() {
initidletm();
}
这种方法是写的还是错的。只有主页选项卡将计数器值重置为home-1和其他选项卡。 home-1选项卡等其他选项卡不会重置主页选项卡和其他选项卡。什么理由?以及如何从工作选项卡重置其他选项卡计数器值?
答案 0 :(得分:1)
您可以通过以下方式编写功能:当您执行某些操作时,它会在HTML5 localStorage
中存储一个值。
if (typeof(Storage) !== "undefined") {
localStorage.setItem("reset", "true");
}
如果你不做任何事情,它会把它设置为假。
localStorage.setItem("reset", "false");
您可以像这样检查这些值:
localStorage.getItem("reset");
因此,当您拥有同一域的不同标签时,您可以查看并查看您是否在其他标签页中执行了任何操作。
参考:http://www.w3schools.com/html/html5_webstorage.asp
希望它有所帮助。