<分区>
Possible Duplicate:
test if window has focus
我经常使用的一个网站有一个在线聊天功能(一个弹出窗口,很像facebook)。当我的浏览器不在该站点的选项卡上时,会发出警报以警告我收到任何新的聊天消息,而当我的浏览器不在该站点的选项卡上时,声音不会出现(我假设是设计使然) .
这是如何实现的?代码(我假定为 javascript,因此在我的客户端执行)如何知道我何时在/不在查看网站?
谢谢
<分区>
Possible Duplicate:
test if window has focus
我经常使用的一个网站有一个在线聊天功能(一个弹出窗口,很像facebook)。当我的浏览器不在该站点的选项卡上时,会发出警报以警告我收到任何新的聊天消息,而当我的浏览器不在该站点的选项卡上时,声音不会出现(我假设是设计使然) .
这是如何实现的?代码(我假定为 javascript,因此在我的客户端执行)如何知道我何时在/不在查看网站?
谢谢
最佳答案
基于以上其他评论的综合答案。是的,这主要是一个重复问题,但它被很好地提出来,因此如果有人没有回答它,它将永远保留在未回答的问题库中。对于有此问题并找到此答案的其他人,请参阅问题评论中的其他链接主题。
<BGSOUND id="BGSOUND_ID" LOOP=1 SRC="jsilence.mid">
<script type="text/javascript" language="JavaScript">
function onBlur() {
document.body.className = 'blurred';
};
function onFocus(){
document.body.className = 'focused';
};
if (/*@cc_on!@*/false) { // check for Internet Explorer
document.onfocusin = onFocus;
document.onfocusout = onBlur;
}
else {
window.onfocus = onFocus;
window.onblur = onBlur;
}
function playSound(audioURL)
{
if (document.body.className == 'blurred')
{
if (document.all)
{
document.all['BGSOUND_ID'].src=audioURL;
}
else
{
self.iplayer.location.replace('jsplayer.htm?'+audioURL);
}
setTimeout("stopSound();", 500);
}
}
function stopSound()
{
if (document.all)
{
document.all['BGSOUND_ID'].src='jsilence.mid';
}
else
{
self.iplayer.location.replace('jsplayer.htm?stop');
}
}
function NewMessage(message)
{
ShowMessage(message);
playSound('ding.mid');
}
</script>
如果用户使用这些浏览器中的任何一个,此代码将使用 IE 和 opera 的 BGSound 标签播放声音,否则它假定页面上有一个名为 iplayer 的 iframe 并使用嵌入式第 3 方播放器。有关详细信息,请参阅来源。
关于javascript - 了解用户何时在浏览器中查看您的站点与其他选项卡/应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8671255/
相关文章:
c# - 在 ASP.NET 日历控件的 OnDayRender 事件期间添加 LinkButtons
c# - 如何让我的变量从 dropdownlist asp.net 携带到总计并在 c# 中打印出来?
javascript - Firefox 扩展 : Add javascript to webpage
javascript - Jquery 在 ASP.net DIV 中不工作只是闪烁并且会卡在它的位置
ios - 无法使用 Stream Chat iOS SDK 构建项目
javascript - 从 JavaScript 中检测 Bootstrap 的显示大小