如何在收到新邮件时在浏览器的标题栏中提醒?

时间:2013-09-13 08:13:29

标签: javascript php

我在php中编写了一个简单的聊天应用程序。我想知道如何在标题栏上放置一个闪烁的标题,以通知用户如果他切换到其他标签,则会收到新消息。 我的代码:  使用Javascript:

//messager fetcher

function reload_content() {



var xmlhttp;

if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest();
  }

xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("chatBox").innerHTML=xmlhttp.responseText;
    }
  }

   xmlhttp.open("POST","messages.php",true);
xmlhttp.send();
    scrollToBottom();
}
window.setInterval(reload_content, 1000);

和messages.php的代码

<?php


  //database connection starts
$con = mysql_connect("******","******","******");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("chat", $con);
//database connection ends

$display_message = mysql_query("SELECT * FROM `messages` WHERE `myname` = '$_SESSION[name]' or `friend` = '$_SESSION[name]'");
 if($display_message === FALSE) {
    die(mysql_error()); // TO DO: better error handling
}


     while($row_display=mysql_fetch_array($display_message))
        {


    $display=$row_display['msg'];
}
echo $display;
?>

3 个答案:

答案 0 :(得分:1)

使用document.title重复修改setInterval(通过为其指定新值)。

您可能希望通过获取初始值并在其上运行正则表达式来确定新值应该是什么。

答案 1 :(得分:0)

在你的javascript中设置windows标题,这里有一个例子:

http://www.javascripter.net/faq/windowti.htm

答案 2 :(得分:0)

要检测用户是否已切换到其他标签,请使用此技巧:

var isActive;

window.onfocus = function () { 
  isActive = true; 
}; 

window.onblur = function () { 
  isActive = false; 
}; 

// test
setInterval(function () { 
  console.log(window.isActive ? 'active' : 'inactive'); 
}, 1000);

来源:https://stackoverflow.com/a/1760283/652669

然后只需用以下内容更新标题:

document.title = 'message';