3

我用 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;
?>
4

3 回答 3

1

要检测用户是否切换到其他选项卡,请使用以下技巧:

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';
于 2013-09-13T08:23:51.470 回答
1

使用 . 重复修改document.title(通过为其分配新值)setInterval

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

于 2013-09-13T08:17:15.060 回答
0

在您的 javascript 中设置窗口标题,这里有一个示例:

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

于 2013-09-13T08:15:52.240 回答