Поддерживать положение прокрутки div при обратной передаче с помощью html / javascript - PullRequest
0 голосов
/ 09 февраля 2011

Есть ли способ сохранить положение прокрутки div на обратной передаче, не используя asp? Пока что я нашел решения только с использованием asp.

Ответы [ 2 ]

0 голосов
/ 23 декабря 2011

Может быть, этот Javascript-код работает для вас

        function loadScroll ()
        {
            var m = /[&?]qs\=(\d+)/.exec (document.location);
            if (m != null)
                myDiv.scrollTop = parseInt (m[1]);
        }

        function saveScroll ()
        {
            var form = document.getElementById ("myForm");
            var sep = (form.action.indexOf ("?") == -1) ? "?" : "&";
            form.action += sep + "qs=" + myDiv.scrollTop;
        }

Теперь вы можете наблюдать за событием submit, чтобы сохранить позицию в атрибуте action:

        document.getElementById ("myForm").addEventListener ("submit", saveScroll, false);

И в вашем теге ТЕЛА ...

<body onload="loadScroll ();">
    ....
</body>

Я не могу проверить код прямо сейчас, но я думаю, вы поняли идею.

0 голосов
/ 09 февраля 2011

http://blogs.x2line.com/al/articles/156.aspx

<!doctype html>
<html>
<head>
<title></title>

<script language="javascript">
    // function saves scroll position
    function fScroll(val)
    {
        var hidScroll = document.getElementById('hidScroll');
        hidScroll.value = val.scrollTop;
    }

    // function moves scroll position to saved value
    function fScrollMove(what)
    {
        var hidScroll = document.getElementById('hidScroll');
        document.getElementById(what).scrollTop = hidScroll.value;
    }
</script>
</head>

<body onload="fScrollMove('div_scroll');" onunload="document.forms(0).submit()";>

<form>

<input type="text" id="hidScroll" name="a"><br>
<div id="div_scroll" onscroll="fScroll(this);" style="overflow:auto;height:100px;width:100px;">

   .. VERY LONG TEXT GOES HERE

</div>
</form>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...