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