-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
56 lines (50 loc) · 1.4 KB
/
index.html
File metadata and controls
56 lines (50 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<!DOCTYPE HTML>
<html>
<head>
<script>
function writeLog(message) {
console.log(message)
loggingArea.value += message + '\n'
}
function notify(message, tag) {
if ( ! ("Notification") in window ) {
writeLog("Notifications not supported")
return
}
if ( Notification.permission === "denied" ) {
writeLog("Notifications denied by user")
return
}
if ( Notification.permission === "granted" ) {
const notification = new Notification(message, {tag: tag})
notification.addEventListener("close", (event) => {
writeLog(`Notification '${tag}' closed`)
})
} else {
Notification.requestPermission().then(() => {
notify(message, tag)
})
}
}
function scheduleNotificaion(message, tag, timeout) {
setTimeout(
() => {
notify(message, tag)
},
3000
)
writeLog(`Notification '${tag}' scheduled`)
}
</script>
</head>
<body>
<button onclick="notify(`Greetings at ${Date()}!`)">Greet me!</button>
<button onclick="notify('Unique notification', 'unique1')">Unique notification</button>
<button onclick="scheduleNotificaion('Deferred notification', 'deferred1', 3000)">Notify me after 3 seconds!</button>
<br />
<br />
<textarea id="loggingArea" cols="120" rows="20" readonly></textarea>
<br />
<button onclick="loggingArea.value=''">Clear log</button>
</body>
</html>