0

div を切り替える Javascript コードを取得して、そのページに戻ったときに、私が去ったときと同じ 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

たとえば、現在開いている div を保存するために LocalStorage を使用できます (ただし、これは新しいブラウザーでのみ機能します。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 に答える