35 lines
1 KiB
HTML
35 lines
1 KiB
HTML
{% from 'utils.html' import root with context -%}
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<link rel="manifest" href="{{ root() }}/static/manifest.json" crossorigin="use-credentials">
|
|
<script type="text/javascript">
|
|
const TOKEN = "{{ token }}";
|
|
|
|
window.addEventListener("message", (event) => {
|
|
if (event.data.token !== TOKEN) {
|
|
return;
|
|
}
|
|
|
|
switch (event.data.operation) {
|
|
case 'set':
|
|
localStorage.setItem(event.data.key, event.data.value);
|
|
break;
|
|
case 'get':
|
|
event.source.postMessage({
|
|
token: TOKEN,
|
|
key: event.data.key,
|
|
value: localStorage.getItem(event.data.key),
|
|
}, "*");
|
|
break;
|
|
case 'remove':
|
|
localStorage.removeItem(event.data.key);
|
|
break;
|
|
case 'getAll':
|
|
event.source.postMessage({ token: TOKEN, store: {...localStorage} }, "*");
|
|
break;
|
|
}
|
|
});
|
|
</script>
|
|
</head>
|
|
</html>
|