HTML 5 Notifications API
function notifyMe() {
// Давайте проверим, поддерживает ли браузер уведомления
if (!("Notification" in window)) {
alert("Ваш браузер не поддерживает HTML5 Notifications");
}
// Теперь давайте проверим есть ли у нас разрешение для отображения уведомления
else if (Notification.permission === "granted") {
// Если все в порядке, то создадим уведомление
var notification = new Notification('Уведомление HTML5', {
lang: 'ru-RU',
body: 'Здесь какой-то контент уведомления...',
icon: 'http://lorempixel.com/output/sports-q-c-100-100-9.jpg'
});
}
// В противном случае, мы должны спросить у пользователя разрешение
else if (Notification.permission === 'default') {
Notification.requestPermission(function (permission) {
// Не зависимо от ответа, сохраняем его в настройках
if(!('permission' in Notification)) {
Notification.permission = permission;
}
// Если разрешение получено, то создадим уведомление
if (permission === "granted") {
var notification = new Notification('Уведомление HTML5', {
lang: 'ru-RU',
body: 'Здесь какой-то контент уведомления...',
icon: 'http://lorempixel.com/output/sports-q-c-100-100-9.jpg'
});
}
});
}
}
У меня несколько вопросов по данному скрипту может кто знает :) Как сделать чексбокс который будет отвечать за показ уведомлений то есть если поставить галку то уведомления выводятся если снять то не будут. И второй вопрос как использовать несколько уведомлений? то есть чтоб не создавать новую функцию notifyMe2 а, иным способом можно ли? |
Цитата:
alert('Здесь какой-то контент уведомления...'); а то вместо сообщения пользователь будет получать бесполезный алерт. А еще лучше, наверное, вообще алерт не выводить - это раздражает. Сидишь читаешь статью, а тут тебе алерт - бах из свернутого окна! Цитата:
if (document.getElementById('checkboxID').checked == true )
Второй вопрос не понятен. Несколько уведомлений - это как? |
BETEPAH, Спасибо большое будем разбираться)
По поводу второго вопроса - Ну чтоб выводить несколько уведомлений с разным содержимом. То есть вызываю одно уведомление в нем один текст вызываю для другой функции там уже другой текст. Как то так))) |
zoOmer,
текст передавать в аргументах функции function notifyMe(text) |
BETEPAH, хм. Не могли бы вы по подробней рассказать о передаче в функцию?
function notifyMe(text) |
ТС похоже не понял в самом начале. Весь представленный код выполняется после нажатия юзером кнопки\чекбокса "Заколебать меня". Оно отсюдо ва переписано https://developer.mozilla.org/en/doc...I/notification
|
Поэтому и возник такой вот вопрос
Цитата:
Отсюда if (permission === "granted") { оно и начинается - создается апликуха которая будет долбить юзера по поводу. Скорее всего это будет таймер с запросом к серверу - нет ли чем задолбать? |
if (document.getElementById('checkboxID').checked == true )
Не работает этот вариант(( |
Цитата:
|
Цитата:
|
EmperioAf,
/* Создаем уведомления на рабочем столе */
/* --- notify('Заголовок','Текст','Время скрытия','Ссылка на иконку') --- */
function notify(title, body, timeout,icoUrl) {
if (document.getElementById('toggle-80').checked == true ) // чекс отключения
timeout = (timeout) ? timeout : 3000;
Notification.requestPermission(function () {
var nf = new Notification(title, {
body: body,
icon: icoUrl
});
nf.onshow = function () {
setTimeout(function () {
nf.close()
}, timeout)
};
});
}
$(window).blur(function() {
windowActive0 = false;
});
$(window).focus(function() {
windowActive0 = true;
});
И чекс.
var checked=getcookie("notifymess")==1?"checked":"";
document.write('<input type="checkbox" id="toggle-80" class="cmn-toggle cmn-toggle-yes-no" name="notifymess" onclick="if(this.checked) {parent.setcookie(this.name,1)} else {parent.setcookie(this.name,0)}" '+checked+'><label for="toggle-80" data-on="Вкл" data-off="Выкл"></label><p >- Включить оповещения на рабочем столе</p>')
|
Ваш пример неполный - если вбить в браузер в ваш код то будет ругаться на функции getcookie и setcookie.
Вот пример показывающий, что if (checkbox.checked == true) работает:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>ГГ</title>
<style>
* {
margin:0;
padding: 0;
outline: none;
}
</style>
</head>
<body>
<input type="checkbox">
<input type="text" value="Выключено">
<script>
var checkbox = document.querySelector('input[type="checkbox"]');
var text = document.querySelector('input[type="text"]');
checkbox.onchange = function(){
if (checkbox.checked == true)
text.value = "Включено";
else text.value = "Выключено";
}
</script>
</body>
</html>
|
EmperioAf, Это просто запоминание состояния чекса на куках.
/* Функции чтения Cookie */
function getcookie(key) {
str=document.cookie;len=str.length; if(len==0) return "";
start=str.indexOf(key + "="); if(start==-1) return "";
start=start+key.length+1;
end=str.indexOf(";",start); if(end==-1) end=len;
return unescape(str.substring(start,end));
}
/* Функции записи Cookie */
function setcookie(key,str,min) {
if(!key) return;
if(!min) min=60*24*365;
var date = new Date();
date.setTime(date.getTime()+(min*60*1000));
document.cookie = key+"="+str+"; expires="+date.toGMTString()+"; path=/";
}
|
Подскажите?
|
Подскажите пожалуйста, а как можно в Body: вставить текст с ссылкой? то есть при нажатии именно на текст, был переход по ссылке.
|
Цитата:
|
ну если сделать так body: "<a href="google.ru">Google</a>", то он не будет парсить то что в кавычках, а просто выведет "<a href="google.ru">Задача</a>".
|
можно же использовать одинарные кавычки и обратные слэши:
"<a href='google.ru'>Задача</a>". |
Ужа нашел в статьях что "Уведомление HTML теги в notification не поддерживает"
Просто думал это как то обойти. И это не помогло obj.innerHTML='<a href="">' |
| Часовой пояс GMT +3, время: 04:46. |