Javascript 如何在收到新消息时在浏览器标题栏中发出警报?
我用php编写了一个简单的聊天应用程序。我想知道,如果用户切换到其他选项卡,如何在标题栏上显示一个闪烁的标题来通知用户他收到了一条新消息。 我的代码: Javascript:Javascript 如何在收到新消息时在浏览器标题栏中发出警报?,javascript,php,Javascript,Php,我用php编写了一个简单的聊天应用程序。我想知道,如果用户切换到其他选项卡,如何在标题栏上显示一个闪烁的标题来通知用户他收到了一条新消息。 我的代码: Javascript: //messager fetcher function reload_content() { var xmlhttp; if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); } xmlhttp.onreadystatechange=fu
//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;
?>
在javascript中设置windows标题,这里有一个示例:
使用setInterval
重复修改文档.标题
(通过为其指定新值)
您可能希望通过获取初始值并在其上运行正则表达式来确定新值应该是什么。要检测用户是否已切换到其他选项卡,请使用以下技巧:
var isActive;
window.onfocus = function () {
isActive = true;
};
window.onblur = function () {
isActive = false;
};
// test
setInterval(function () {
console.log(window.isActive ? 'active' : 'inactive');
}, 1000);
资料来源:
然后只需使用以下内容更新标题:
document.title = 'message';
它不应该是document.title
?@putvande-是的……这就是我测试它时键入的内容。我可能应该回去睡觉了。我不是说只有在收到新消息时才更改标题。我怎么做?@Webmasterpsb-你把代码放在任何用来确定新消息是否到达的代码中。检测是否收到新消息的条件在哪里?