情况是这样的,目前在做一个在线学习的系统,其中一个模块是文件学习,我做成了类似百度文库那种,当用户在阅读的时候就给用户计时,因为一个文件规定了要学习多长时间。网上看到的方案有两种,一个是body的onfocus和onblur的事件,这种可以检测到页面最小化,或者是用户已经切换到其他页面。但是又一个问题是在阅读的页面里点击了某个链接计时就会失效,例如点击页面中flash文档的滚动条就会失效,点击一个下载链接就会失效。还有一种就是:
<body>
<script>
function check(){
if(window.screenTop<-30000&&window.screenLeft<-3000)
{
alert('最小化');
}
else if(document.body.offsetWidth == screen.availWidth){
alert('最大化');
}
else
{
alert('不是最大化');
}
}setInterval("check()",3000);
</script>这种代码不过这样也有不足的地方,那就是如果用户不点击最小化,而是直接通过任务栏切换到其他页面的话,就检测不出来用户已经离开了。
所以特在此发帖请教各位大大。谢谢
<body>
<script>
function check(){
if(window.screenTop<-30000&&window.screenLeft<-3000)
{
alert('最小化');
}
else if(document.body.offsetWidth == screen.availWidth){
alert('最大化');
}
else
{
alert('不是最大化');
}
}setInterval("check()",3000);
</script>这种代码不过这样也有不足的地方,那就是如果用户不点击最小化,而是直接通过任务栏切换到其他页面的话,就检测不出来用户已经离开了。
所以特在此发帖请教各位大大。谢谢
<html>
<body onunload="showtime()">
<script language=javascript type=text/javascript>
pageOpen=new Date();function showtime()
{
pageClose=new Date();
minutes=pageClose.getMinutes()-pageOpen.getMinutes();
seconds=pageClose.getSeconds()-pageOpen.getSeconds();
time=(seconds+(minutes*60));
if(time==1)
{
time="你在本网页用了"+time+"秒钟";
}
alert(time);
}</script>
</body>
</html>