Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript来启动和停止计时_Javascript - Fatal编程技术网

JavaScript来启动和停止计时

JavaScript来启动和停止计时,javascript,Javascript,我对JavaScript计时有一些问题。基本上,我希望它在失去焦点时开始计时,当它回到焦点时,计时将停止并显示 var start,end,isTimerOn=0; window.addEventListener('blur', function() { //when user get out of the screen /*Start Time when user goes out of focus*/ start = new Date().getTime(); }); window.addE

我对JavaScript计时有一些问题。基本上,我希望它在失去焦点时开始计时,当它回到焦点时,计时将停止并显示

var start,end,isTimerOn=0;
window.addEventListener('blur', function() { //when user get out of the screen
/*Start Time when user goes out of focus*/
start = new Date().getTime();
});
window.addEventListener('focus', function() { //when user focus on the screen
if (isTimerOn==1)
{
    end = new Date().getTime();
    var time = end - start; //time will be in ms. eg: 1 sec will be 1000

    /*Convert to seconds*/
    var y=Math.round(time/1000);

    start=0; //reset
    isTimerOn=0; //reset
    alert('Execution time: ' + y  + 'secs'); //this will print the time how long the user has been away

}
});
现在,isTimerOn变量是一个标志,将在以下情况下设置:

function ProcessThisSearch(form)
{
    //alert("OI!"); //test is js is working.
    var test=form.search.value;
    //alert(test); //test if value can be retrieved
    if (test)
    {
        isTimerOn=1;
        window.open('http://www.'+test+'.com');
    }

}
此函数ProcessThisSearch(表单)将在以下HTML表单中调用:

<form align=right action="mainheader.jsp" method="POST"><input type="text" name="search"><input type="submit" value="Open Website" onClick="ProcessThisSearch(this.form)"></form>


我认为问题在于isTimerOn变量。因为我已经测试了两个事件监听器,它正在工作。只有当我添加isTimerOn变量时,它似乎不起作用。

您的HTML代码将仅在表单提交时设置isTimerOn=true。 也许这不是你想要的

提交表单还会将当前页面更改为mainheader.jsp,并通过ProcessThisSearch函数加载另一个页面

可能的解决办法是:

打开网站


代码
窗口第2行的打字错误。
应该是
窗口。
您好,我已经检查了实际代码。实际代码没有输入错误。在堆栈溢出中复制和粘贴时,我不小心输入了一个错误。您考虑过定时功能吗?
isTimerOn
变量的具体问题是什么,什么不起作用?@xyu:这有什么帮助?除此之外,与
Date
相比,它是非常不可靠的。你好,anishsane,非常感谢你的帮助。这个解决方案似乎奏效了。我只想问几个问题:return false如何帮助表单?一般来说,任何onclick事件上的“return false”都会中止正常的单击效果。e、 g.对于“a”元素,它将中止链接导航;对于表单的输入类型=提交元素,它将中止表单提交。不过,onclick(示例中的ProcessThisSearch)中的代码将被执行。