这是我到目前为止所做的,但它很丑陋并且感觉不是最好的做法。例如,如果收到多条消息,则会多次启动changeTitle循环。
var hasFocus = true;
$(window).bind("blur", function() {
hasFocus = false;
});
$(window).bind("focus", function() {
hasFocus = true;
document.title = 'SiteName | Chat';
});
var i=0;
function changeTitle() {
i++;
if(i%2) {
document.title = 'New message on SiteName!';
}
else {
document.title = 'SiteName | Chat';
}
if(!hasFocus) {
setTimeout('changeTitle()',1000);
}
}
// Then I call changeTitle() when a new message is received.
答案 0 :(得分:1)
这就是我最终要做的事情。
function changeTitle() {
i++;
if(i%2) {
document.title = 'New message on mysite!';
}
else {
document.title = 'MySite | Chat';
}
if(!hasFocus) {
titleCurrentlyChanging = true;
setTimeout('changeTitle()',1000);
}
else {
titleCurrentlyChanging = false;
i=0;
document.title = 'MySite | Chat';
}
}
在addMessage()函数内部,当收到新消息时调用该函数:
if(!hasFocus && !titleCurrentlyChanging) {
changeTitle();
}
在全局命名空间内:
var i = 0;
var titleCurrentlyChanging = false;
var hasFocus = true;
$(window).bind("blur", function() {
hasFocus = false;
});
$(window).bind("focus", function() {
hasFocus = true;
document.title = 'MySite | Chat';
});
答案 1 :(得分:0)
我能想到三个:
当然,这些方法需要一些时间来适应,尽管它肯定会比不断改变标题更少侵入。