0

有没有办法获取一些 Javascript 代码来切换 div 并使其在我返回该页面时打开与我离开时相同的 div?

我正在使用这个脚本:

(function() { // using an IIFE to prevent polluting the global namespace
    var opened_element = null;

    window.toggle_visibility = function(id) {
        var e = document.getElementById(id);
        if (opened_element && opened_element !== e) {
            opened_element.style.display = 'none';
        }
        if(e.style.display == 'block') {
            e.style.display = 'none';
        } else {
            e.style.display = 'block';
        }
        opened_element = e;
    };
}());
4

2 回答 2

1

任何涉及“并在页面之间维护”短语的 HTML 问题都需要提醒一下 HTML 如何是无状态的。您将需要某种形式的特殊变量来跟踪页面之间的内容,并据此适当地呈现页面。您的选择包括:

  • 饼干。
  • PHP/Java 服务器“会话”变量。(即 $_SESSION['divShowing'])
  • localStorage(Javascript;旧版浏览器不支持。如果您不想在浏览器会话之间维护,也可以使用 sessionStorage)
于 2013-05-20T20:46:26.180 回答
0

例如,您可以使用 LocalStorage 来保存当前打开的 div(但它仅适用于新浏览器;如果您必须支持 IE<=8 之类的东西,则应使用 cookie 代替)。

function toggle_visibility(id) {
    var e = document.getElementById(id), opened_element = document.getElementById(localStorage.opened_element);
    if (opened_element && opened_element !== e) {
        opened_element.style.display = 'none';
    }
    if(e.style.display == 'block') {
        e.style.display = 'none';
    } else {
        e.style.display = 'block';
    }
    localStorage.opened_element = e.id;
};
if (localStorage.opened_element) {
    toggle_visibility(localStorage.opened_element);
}
于 2013-05-20T20:44:06.923 回答