问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

js 怎样判断用户是否在浏览当前页面?

发布网友 发布时间:2022-04-27 01:21

我来回答

9个回答

热心网友 时间:2022-05-12 07:08

这样:

//网页当前状态判断var hidden, state, visibilityChange; if (typeof document.hidden !== 

"undefined") {

hidden = "hidden";

visibilityChange = "visibilitychange";

state = "visibilityState";} else if (typeof document.mozHidden !== "undefined") {

hidden = "mozHidden";

visibilityChange = "mozvisibilitychange";

state = "mozVisibilityState";} else if (typeof document.msHidden !== "undefined") {

hidden = "msHidden";

visibilityChange = "msvisibilitychange";

state = "msVisibilityState";} else if (typeof document.webkitHidden !== "undefined") {

hidden = "webkitHidden";

visibilityChange = "webkitvisibilitychange";

state = "webkitVisibilityState";}// 添加*,在title里显示状态变化

document.addEventListener(visibilityChange, function() {

document.title = document[state];}, false);//初始化页面状态document.title = 

document[state];

扩展资料:

注意事项

浏览器对象有onfocus 和 onblur事件可以监听。但是触发这两个事件的前提是页面之前是focus过的。也就是说页面刚刚渲染完,用户在没有页面上任何操作时,页面是不会正常监听这两个事件的;或者页面在打开状态下,但是触发了onblur之后并无页面操作的情况下也不会正常监听这两个事件。

直到,用户操作页面触发focus,之后离开页面才会触发blur,再次点击到当前页面时才会触发focus,如此反复都会触发相应的事件。

触发onblur事件的情况:

1、在chrome浏览器下,点击console面板也会触发blur事件,同样的,前提是之前是focus的状态。

2、页面最小化。

3、浏览器切换tab页面。

4、页面中的任何弹窗。

5、focus状态下切换到其他应用。

热心网友 时间:2022-05-12 08:26

可以通过document.hidden属性判断当前页面是否是激活状态。

兼容性:IE10+,Firefox10+,Chrome14+,Opera12.1+,Safari7.1+

兼容性写法示例:

var hiddenProperty = 'hidden' in document ? 'hidden' :    
    'webkitHidden' in document ? 'webkitHidden' :    
    'mozHidden' in document ? 'mozHidden' :    
    null;
var visibilityChangeEvent = hiddenProperty.replace(/hidden/i, 'visibilitychange');
var onVisibilityChange = function(){
    if (!document[hiddenProperty]) {    
        console.log('页面非激活');
    }else{
        console.log('页面激活')
    }
}
document.addEventListener(visibilityChangeEvent, onVisibilityChange);

热心网友 时间:2022-05-12 10:01

你可以使用 onblur 和 onfocus 判断页面是否在最前端(获取焦点)

如果 onblur,停止向服务器请求,当 onfocus,继续请求


下面这个例子可以更好的演示我上面说的,你只是需要把输出数字换为 ajax 的工作。

打开页面,先输出几个数字,转到其它页面,等待几秒,再回去,数字应该接着上次离开时候的值继续输出。


<script type="text/javascript">
var count = 1;
var interval_output = null;

function output_number() {
document.body.innerHTML += (count + " ");
count++;
}

// window 失去焦点,停止输出
window.onblur = function() {
clearInterval(interval_output);
};

// window 每次获得焦点
window.onfocus = function() {
// 每 1 秒在页面输出一个数
interval_output = setInterval(function() {
output_number();
}, 1000);
}
</script>

热心网友 时间:2022-05-12 11:52

可以给整个页面添加mouseover和mouseout事件,如果用户正在浏览该页面,基本上鼠标是在这个页面上的。这里,当over事件一时触发可以判断用户正在浏览页面,当out触发,则认为用户不关注页面了。追问先判断鼠标的位置。。如果能找到鼠标就向服务器get你看能不能行的通?
如果加mouseover和mouseout事件怎么用呢?鼠标一移动就向服务get吗?

热心网友 时间:2022-05-12 14:00

1.监听cookis
2.HTML5新功能:localStorage 用storage事件监听别的页面

有时间百度下。
别忘了给分。追问不明白。需要监听服务器里面数据的变化。。。
为什么要监听本地的呢?
不过大兄弟,你这个localStorage很好用哈哈。比传统的cookie方便多了

热心网友 时间:2022-05-12 16:25

document.hidden属性,返回布尔值,true,不过只IE10以上兼容!

热心网友 时间:2022-05-12 19:06

你可以使用 onblur 和 onfocus 判断页面是否在最前端(获取焦点)
如果 onblur,停止向服务器请求,当 onfocus,继续请求

下面这个例子可以更好的演示我上面说的,你只是需要把输出数字换为 ajax 的工作。
打开页面,先输出几个数字,转到其它页面,等待几秒,再回去,数字应该接着上次离开时候的值继续输出。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

<script type="text/javascript">
var count = 1;
var interval_output = null;

function output_number() {
document.body.innerHTML += (count + " ");
count++;
}

// window 失去焦点,停止输出
window.onblur = function() {
clearInterval(interval_output);
};

// window 每次获得焦点
window.onfocus = function() {
// 每 1 秒在页面输出一个数
interval_output = setInterval(function() {
output_number();
}, 1000);
}
</script>

热心网友 时间:2022-05-12 22:04

网页聊天室功能??追问嗯嗯。

追答两中方法:
1. ajax 长连接 技术
2. 服务器推 技术

具体文档 网上都有介绍,自己看看就行了。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦见好多鱼在水里活蹦乱跳 教你如何将让reaver PIN 进度随意更改精确前四位 求个保存PIN进度的方法 ...不上外接键盘,但鼠标一直有用,谁能告诉我怎么回事,先谢了。。_百度... 相机SD卡,卡上图片电脑显示不出来 相机SD卡用读卡器插到电脑上DCIM文件夹不显示照片怎么解决? win10查询错误日志的方法-win10怎么查询错误日志 电脑系统日志文件如何查看电脑里的系统日志 电脑事件日志在哪里看怎样查看电脑使用的日志 win11系统日志在哪里看 win11系统日志怎么看 当前页面是什么意思? 电脑总是弹出当前页面怎么解决 如何打印当前页面 怎么设置浏览器中新打开的页面成为当前页面? 退出当前页面? |975年的兔跟属什么的最配 属兔的人和什么人结婚最好 属兔的人最好和那种属相结婚? 87年属兔的最佳配偶是属什么的 属兔75年的和什么属相最配 兔与属什么的结婚最合适? 手机上显示pp浏览器怎么整没? 手机上pp怎么下载 怎么在手机上解决pp助手闪退问题 手机上的pp助手要怎么弄才可以连上电脑上的助手啊 怎么形容银河 高压锅鱼头怎样做? 鱼头的做法最正宗的做法 鱼头怎么做最好吃? 360防火墙路由器wifi密码忘了怎么办 如何在当前页面打开网页(有关命令或网页制作的问题) 百度视频如何分享视频到微信朋友圈? 远程教育经历了哪几个发展阶段 &lt;现代远程学习概论&gt;试题4 一套关于《现代远程学习概论》的题。 简述远程教育系统的特征和基本组成,以及每个子系统包括的主要内容。 一般认为,远程教育经历了函授教育、传统的广播电视教育和现代远程教育三个阶段对吗? 凉拌酸甜藕片的家常做法怎么做好吃 什么是现代远程教育? 远程学习者主要学习方法有哪些? 凉拌酸甜藕片怎么做好吃 远程学习的方法和 远程教育的课程过程性评价具体包括哪些内容 凉拌糖醋藕片的做法,凉拌糖醋藕片怎么做好吃 什么是远程?什么是函授? 凉拌酸辣藕片的做法,凉拌酸辣藕片怎么做好吃 window10任务栏显示不了图标? 三都的朋友能不能回答一下我,党校教师岗位的面试形式是结构化还是说课试讲? 说课和试讲有什么区别? 党校老师经常外出讲课吗