Как создать эффект предупреждения заголовка, как Facebook? - PullRequest
13 голосов
/ 01 августа 2010

Как создать эффект мигающего заголовка, как в Facebook? Это значит, что когда вы разговариваете с кем-то и принимается новое сообщение, заголовок начинает переключаться между оригинальным заголовком и сообщением, информирующим пользователя о прибытии нового сообщения, дающего эффект мигания.

Объяснение AdrianoKF :

Обратите внимание, что заголовок окна циклически повторяется между чем-то вроде «Новое сообщение из Foo Bar» и обычным после получения нового сообщения чата.

Ответы [ 3 ]

34 голосов
/ 01 августа 2010

Код:

(function () {

var original = document.title;
var timeout;

window.flashTitle = function (newMsg, howManyTimes) {
    function step() {
        document.title = (document.title == original) ? newMsg : original;

        if (--howManyTimes > 0) {
            timeout = setTimeout(step, 1000);
        };
    };

    howManyTimes = parseInt(howManyTimes);

    if (isNaN(howManyTimes)) {
        howManyTimes = 5;
    };

    cancelFlashTitle(timeout);
    step();
};

window.cancelFlashTitle = function () {
    clearTimeout(timeout);
    document.title = original;
};

}());

Использование:

flashTitle("New Message from Matt Lunn");

... или ...

flashTitle("New Message from John Smith", 10); // toggles it 10 times.
11 голосов
/ 01 августа 2010

Установите интервал, который переключает заголовок каждые несколько секунд.Непроверенный код:

function flashTitle(pageTitle, newMessageTitle)
{
    if (document.title == pageTitle)
    {
        document.title = newMessageTitle;
    }
    else
    {
        document.title = pageTitle;
    }
}

setInterval("flashTitle('Facebook', 'New message from John Doe!')", 800);
1 голос
/ 15 июня 2015
setInterval("var x='www.WHAK.com/Packer/',y='WHAK.com/Packer/',z=document;z.title=z.title==x?y:x",900);
...