多个浏览器中的页面标题通知

时间:2011-05-08 00:18:06

标签: php javascript notifications chat

我在网页上有一个聊天脚本。 现在,当有人添加消息时,我想通知打开但未激活页面/标签的其他人,以接收新消息的通知。
例如,我想将页面标题从“聊天”更改为“新消息 - 聊天”。 我认为这也是“Facebook Chat”的作用。

但是当我使用时: document.title =“新消息”; 它仅在提交邮件的用户的浏览器中更改。不在其他浏览器上。

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:0)

您可以为您的标题指定一个ID:

document.getElementById("title").innerHTML ="new Title";

或只是

document.getElementsByTagName('title')[0].innerHTML = "New Title";

无论哪种方式都可以使用

更新:

重读后我发现了一个错误。

当您的脚本检查新邮件时,如果有新邮件您也应该更改标题,或者在更改标题之前执行其他测试以查看用户是否处于活动状态

答案 1 :(得分:0)

要做Facebook Chat所做的事情,即近乎实时地通知每个用户更新,您需要使用“推送”技术或模仿它的东西。可能的技术是轮询(只是让每个客户端定期点击服务器以检查更新),Comet(长轮询或流连接到服务器),或更新,更真实的“推送”(但支持较少)方法,如服务器发送的事件或WebSocket API

轮询不是最有效的技术,但是最简单的实现。您可以从编写接受时间戳的服务器端处理程序开始,并返回自该时间戳以来的更新计数。客户端Javascript以一定间隔调用该处理程序,传递最后一次检查的时间戳,并处理响应(如果找到最近的更新,则更新标题栏)。

答案 2 :(得分:0)

倾听document.title = "New Message";是一个绝对完美的代码,但是你把它放在这样一个区域,即当一个人输入一条消息时,它会在他的页面上执行,这是错误的。当用户等待回复时(另一个用户,您正在聊天),当AJAX(或您用于检查的任何其他方法)收到来自键入消息的人的回复时,您应该添加这段代码。

基本上我所说的是这段代码放在错误的地方。当某人收到聊天消息时,您必须放置此代码段,而不是将其发送给其他人。

然后在身体上,当onmousemove将标题更改回原始标题时,您可以制作活动!这就是Facebook Chat的工作方式。

你的错误就在这个地方,你放置了你的代码片,没有别的!

希望这有帮助,干杯!