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

document.titleを使用して (新しい値を代入して) 繰り返し変更しますsetInterval

初期値を取得して正規表現を実行することにより、新しい値がどうあるべきかを判断したい場合があります。

于 2013-09-13T08:17:15.060 に答える
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 に答える