Добавьте номер, полученный с помощью AJAX (jQuery) к заголовку документа, как в уведомлениях Facebook - PullRequest
1 голос
/ 16 июня 2011

Мне интересно, как они добавляют новые номера уведомлений в заголовок документа на Facebook Проблема не в том, чтобы получить числа (я могу легко сделать это через AJAX), а в том, чтобы добавить ответ к названию. В основном у меня есть эта функция:

function globalCount() {
    var title = $('title').text();
    $('title').load('../ajax/global-title.php', null, function(html){
        $(this).text(title + html)
    }); 
}

globalCount();
var auto_global = setInterval(function() {
    globalCount();
}, 20000);

Но это не работает: при загрузке у меня, то есть, «MyTitle (2)», через 20 секунд он становится «MyTitle (2) (2)», затем «MyTitle (2) (2) (2»). )" и так далее. Число, полученное через AJAX, конечно же, динамическое (оно может меняться в зависимости от запросов к базе данных в «global-title.php»). Пожалуйста, помогите? Спасибо

Ответы [ 2 ]

2 голосов
/ 16 июня 2011

Вы можете установить переменную при первой загрузке страницы, например:

var pagetitle = $('title').text();

И тогда в вашем коде просто напишите

$(this).text(pagetitle + html);

Это будет означать, что вы будете каждый раз сбрасывать заголовок и просто добавлять самые новые данные.

0 голосов
/ 16 июня 2011

Это можно сделать с помощью небольшого регулярного выражения.Предполагая, что у вашего заголовка нет других скобок, вы можете сделать это:

function globalCount() {
    var title = $('title').text().replace(/\([0-9]\)/, '');

    $('title').load('../ajax/global-title.php', null, function(html){
        $(this).text(title + html);
    }); 
}

Модификация строки var title удалит все строки, соответствующие таким вещам, как (2) (скобка, любое число,и другую скобку), и замените ее ничем.

Я сделал пример регулярного выражения здесь .

...