2. sessionStorage
<div id="<?attr OutputId() ?>" class="message">
<span class="box ellipses">
<span class="glyphicon glyphicon-comment"></span>
...
</span>
<span class="box text">
<span class="glyphicon glyphicon-heart-empty"></span>
<?= @Text ?>
</span>
</div>
<? scriptmodule "wem-message-box" ?>
function clearStateMessageBox(outputId, nodeId) {
const key = getKeyMessageBox(outputId, nodeId);
sessionStorage.removeItem(key);
}
function getKeyMessageBox(outputId, nodeId) {
return `${outputId}:${nodeId}:collapsed`;
}
function initializeMessageBox(outputId, nodeId, style) {
const element = document.getElementById(outputId);
const key = getKeyMessageBox(outputId, nodeId);
const collapsed = sessionStorage.getItem(key) === "yes";
element.classList.add(style);
element.classList.toggle("collapsed", collapsed);
element.classList.toggle("expanded", !collapsed);
element.addEventListener("click", () => toggleMessageBox(element, key));
}
function toggleMessageBox(element, key) {
element.classList.toggle("collapsed");
element.classList.toggle("expanded");
const collapsed = element.classList.contains("collapsed");
sessionStorage.setItem(key, collapsed ? "yes" : "no");
}
<? end ?>
<?
/* Unfortunately, WEM does not yet have a NodeId() function. */
var @currentNodeId := Last(Split(NodeTrail(), ","))
?>
<? startupscript ?>
initializeMessageBox(<?js OutputId() ?>, <?js @currentNodeId ?>, <?js @Style ?>);
<? end ?>Last updated
Was this helpful?