Intereting Posts
Получить название из ссылки, PHP Простой HTML DOM Parser как удалить файлы с удаленного сервера с помощью phpStorm WooCommerce 3.0 – скрыть информацию об изменении в заголовке продукта Сортировка заголовков и отображение в алфавитном порядке, с буквой алфавита, предшествующей записи Соединение с https://xxx.xxx отказано Как показать значение переключателя с помощью PHP HTML в PDF против программного создания PDF через PHP Symfony / Doctrine – значения дат запроса в отношении существующих значений базы данных расшифровать зашифрованный текст as3crypto в PHP php создать метод класса во время выполнения Создание экземпляров класса по строкам с использованием пространств имен PHP 5.3 PHP: Как удалить вложенные теги и перенести их не вложенным образом? Обновление и отображение самой последней записи (в БД) после того, как AJAX обновляет значение через PHP создавая основной класс, который расширяет другой ключевой класс codeigniter Могу ли я md5 (sha1 (пароль))?

Ведение позиции полосы прокрутки после перезагрузки страницы

Я хотел бы, чтобы содержимое таблицы переместилось в ту же позицию, что и до обновления страницы, а не в верхней части содержимого таблицы. Другими словами, если пользователь прокручивается вниз, а кнопка запускает перезагрузку страницы, я хочу, чтобы содержимое таблицы возвращалось в ту же позицию после обновления.

CSS, используемый для моей таблицы

#invoice_incomplete {width:850px;height:400px;overflow:auto;} 

Вы можете достичь этого, используя Javascript. При загрузке страницы вы можете написать [если таблица имеет полосу прокрутки]

 document.getElementById("invoice_incomplete").scrollTop = 200px; // where you want scroll 

или для всей страницы писать,

  document.body.scrollTop = 200px; // 

Как указывает Чинмайе, прокрутка программно довольно проста. Другая его часть – как записать положение прокрутки до перезагрузки.

Я бы попробовал обработчик выгрузки для записи cookie для записи текущей позиции прокрутки ( document.getElementById("invoice_incomplete").scrollTop ), но я предполагаю, что выгрузка слишком поздняя, ​​и не всем браузерам удастся написать куки. Так что, вероятно, это лучше, чем раньше.

Так было бы примерно так:

 window.onbeforeunload = function() { document.cookie = "invoiceScrollPos=" + (document.getElementById('invoice_incomplete').scrollTop) + ";path=/"; } 

Затем после перезагрузки страницы прочитайте значение этого файла cookie и установите scrollTop .

Один (возможно) нежелательный побочный эффект этого подхода заключается в том, что, если пользователь покидает эту страницу, затем возвращается к нему позже в том же сеансе браузера, положение прокрутки будет восстановлено до того, что было раньше. Чтобы решить эту проблему, вы можете добавить дату истечения срока действия в файл cookie, который, возможно, через 1 минуту после создания файла cookie.