#javascript
Вопрос:
У меня есть уведомление на веб-сайте При отправке уведомления, оно отправляется сейчас. Я хочу отправить его через два часа после нажатия кнопки отправить уведомление
код
<button onclick="bell();">send</button>
function bell() {
function notifyMe() {
if (!("Notification" in window)) {
alert("This browser does not support system notifications");
}
else if (Notification.permission === "granted") {
notify();
}
else if (Notification.permission !== 'denied') {
Notification.requestPermission(function (permission) {
if (permission === "granted") {
notify();
}
});
}
function notify() {
var notification = new Notification('success now', {
icon: 'blue.svg',
});
setTimeout(notification.close.bind(notification), 3000);
var notification = new Notification('success 2 hours', {
icon: 'blue.svg',
}); notification.onclick = function () {
window.open("INDEX.HTML");
};
}
}
notifyMe();
}
Комментарии:
1. используйте
setTimeout
функцию. Читать дальше2. Вы что — нибудь пробовали? В чем проблема?
3. хорошо, я использую его таким образом и не работаю
4. Я не думаю, что это хорошая идея-делать это с помощью JavaScript. Несколько секунд-это одно, но два часа? Как вы убедитесь, что веб-сайт все еще будет открыт в браузере клиента через два часа? Похоже, вам нужно серверное решение и запустите его с помощью своего JavaScript.
5. Хорошо, но каково решение, чтобы это случилось со мной
Ответ №1:
Вы можете использовать этот код:
<!DOCTYPE html>
<html>
<body>
<button onclick="bell()">Show notification</button>
<script type="text/javascript">
const granted = (async () => {
let granted = false;
if (Notification.permission === 'granted') {
granted = true;
} else if (Notification.permission !== 'denied') {
let permission = await Notification.requestPermission();
granted = permission === 'granted' ? true : false;
}
return granted;
})();
const showNotification = (msg) => {
const notification = new Notification('success', {
body: msg,
icon: 'blue.svg'
});
setTimeout(() => {
notification.close();
}, 3 * 1000);
notification.onclick = () => {
window.focus();
}
}
function bell() {
granted amp;amp; showNotification("Hello World"); // short for if (granted) showNotification(...)
}
</script>
</body>
</html>