В нижней части программного обеспечения Gtalk есть очень хорошая и практичная функция — функция напоминания по электронной почте Gmail. Количество новых непрочитанных писем в вашем Gmail будет регулярно обновляться.
Только представьте, как было бы интересно, если бы мы портировали эту функцию в Firefox!
Первым шагом является отображение значков и данных в строке состояния .
С помощью статьи « Как создать расширение Jetpack для Firefox » мы можем легко создать:
jetpack.statusBar.append({
html: '', //значок почты Gmail и непрочитанный номер новых сообщений
width: 55, //Ширина строки состояния равна 55
onReady: функция (виджет) {
$("#count", widget).css({ //Добавляем стиль к количеству непрочитанных новых писем
курсор: «указатель»,
paddingLeft:"4px",
Семейство шрифтов: "Tahoma, Arial, без засечек",
вертикальноеВыравнивание: "сверху",
Размер шрифта: "10 пикселей",
lineHeight:"18px",
});
}
});
Второй шаг — получить данные Gmail и обновить количество непрочитанных новых писем.
Его можно получить через почтовый канал Gmail (требуется вход в систему): https://mail.google.com/mail/feed/atom .
Тег fullcount в исходном коде канала используется для записи текущего количества непрочитанных новых писем.
Хорошо, сначала доступен источник данных. Далее мы используем знакомую технологию Ajax для получения данных и присваиваем их указанному элементу.
обновление функции (виджет) {
вар виджет = $(виджет);
$.get(" https://mail.google.com/mail/feed/atom ", function(xml) {
var el = $(xml).find("fullcount"); // Узел, записывающий количество непрочитанных новых писем
если(эл){
вар newcount = parseInt(el.get(0).textContent);
widget.find("#count").text(newcount); //Назначаем указанному элементу
} else { //Если вы не вошли в систему, отобразите «Войти»
widget.find("#count").text( "Войти");
}
});
}
Мы также можем провести некоторую оптимизацию: например, когда количество непрочитанных новых писем превышает исходное количество писем, добавить подсказку и т. д.
Метод jetpack.notifications.show(options) используется для получения подсказок. Параметр options имеет три атрибута: заголовок (String): заголовок значка уведомления (URL): URL-адрес тела значка уведомления (String). : тематическое содержание уведомления.
Оптимизированный код выглядит следующим образом:
количество вар = 0;
обновление функции (виджет) {
вар виджет = $(виджет),
notify = function(msg) { // Открытый метод для определения уведомлений
jetpack.notifications.show({
заголовок: "Gmail",
тело: сообщение,
значок: " http://mail.google.com/mail/images/favicon.ico "
});
};
$.get(" https://mail.google.com/mail/feed/atom ", function(xml) {
var el = $(xml).find("fullcount"); // Узел, записывающий количество непрочитанных новых писем
если(эл){
вар newcount = parseInt(el.get(0).textContent);
if(newcount > count) { // Если количество непрочитанных новых писем больше, чем количество исходных писем, откуда появится подсказка?
вар отправитель = $(xml).find("имя").get(0).textContent;
notify("Новое сообщение от "+sender);
}
счет = новый счет;
widget.find("#count").text(count); //Назначаем указанному элементу
} else { //Если вы не вошли в систему, предложите войти
widget.find("#count").text( "Войти");
notify("Пожалуйста, войдите в Gmail");
}
});
}