javascript - 了解用户何时在浏览器中查看您的站点与其他选项卡/应用程序

标签 javascript asp.net chat

<分区>

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 方播放器。有关详细信息,请参阅来源。

  1. 关注码来源:Here
  2. 声音播放来源:Here

关于javascript - 了解用户何时在浏览器中查看您的站点与其他选项卡/应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8671255/

相关文章:

ios - Quickblox 简单的聊天应用程序

c# - 在 ASP.NET 日历控件的 OnDayRender 事件期间添加 LinkBut​​tons

c# - 如何让我的变量从 dropdownlist asp.net 携带到总计并在 c# 中打印出来?

java - 使用套接字连接的简单聊天

javascript - Firefox 扩展 : Add javascript to webpage

javascript - Jquery 在 ASP.net DIV 中不工作只是闪烁并且会卡在它的位置

ios - 无法使用 Stream Chat iOS SDK 构建项目

javascript - 从 JavaScript 中检测 Bootstrap 的显示大小

javascript - 请解释 Angular 2 中的 "#variable"与 "let variable"

javascript - node.js watchFile() 不观看