是否有一种方法来采取一些Javascript代码切换div,使它,所以当我返回到那个页面,相同的div是开放的,当我离开



是否有一种方法可以使用一些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;
    };
}());

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

  • 饼干。
  • PHP/Java服务器的"session"变量。(例如,$ _SESSION ['divShowing '])
  • localStorage (Javascript;旧的浏览器不支持。sessionStorage也是可用的,如果你不想在浏览器会话之间维护)

例如,您可以使用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);
}

最新更新