How to make browser back and forward work on a single page layout?

后端 未结 3 1985
深忆病人
深忆病人 2021-01-01 04:35

As a follow-up question to: Most efficient way to do a horizontal sliding layout, is it possible to make the browser\'s back and forward button work when using a single page

相关标签:
3条回答
  • 2021-01-01 04:51

    In older way, you can try to use bookmark, e.g.

        <html>
        <head>
            <script type="text/javascript">
                function goPage (v) {
                    var idisplay = v == 'i',
                        adisplay = v == 'a',
                        bdisplay = v == 'b';
                    document.getElementById('anchor_i').style.display = idisplay? 'none' : 'block';
                    document.getElementById('anchor_a').style.display = adisplay? 'none' : 'block';
                    document.getElementById('anchor_b').style.display = bdisplay? 'none' : 'block';
    
                    document.getElementById('content_i').style.display = idisplay? 'block' : 'none';
                    document.getElementById('content_a').style.display = adisplay? 'block' : 'none';
                    document.getElementById('content_b').style.display = bdisplay? 'block' : 'none';
                }
            </script>
        </head>
        <body>
            <a name="index"></a>
            <div id="content_i">
                index
            </div>
    
            <a id="anchor_i" href="#index" onclick="goPage('i');" style="display: none">to index</a>
            <a id="anchor_a" href="#page_a" onclick="goPage('a');">to page_a</a>
            <a id="anchor_b" href="#page_b" onclick="goPage('b');">to page_b</a>
    
            <a name="page_a"></a>
            <div id="content_a" style="display: none">
                page a
            </div>
            <a name="page_b"></a>
            <div id="content_b" style="display: none;">
                page b
            </div>
        </body>
    </html>
    
    0 讨论(0)
  • 2021-01-01 04:52

    You can use the history API in HTML5 to achieve that.

    Here are a few resources to get you started:

    • http://diveintohtml5.info/history.html
    • http://html5demos.com/history
    • https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history

    To get support in older browsers as well, there are JavaScript libraries that enable that:

    • https://github.com/browserstate/History.js/

    Advanced example by the Chrome team, that uses the history API:

    • http://www.20thingsilearned.com/en-US
    0 讨论(0)
  • 2021-01-01 05:10

    Yes, you can use HTML5 history API to implement it.

    • Demo: http://html5demos.com/history
    • Docs: http://diveintohtml5.info/history.html
    0 讨论(0)
提交回复
热议问题