dlibrary/dlibrary/templates/store.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>