При нажатии кнопки «Назад» браузера состояние радио и флажка сбрасывается - PullRequest
0 голосов
/ 24 апреля 2019

У меня проблема с состоянием кнопки-флажка при переходе на следующую страницу, затем нажмите кнопку «Назад» в браузере Edge (MS).

При поиске информации об этой проблеме я наткнулся на это сообщение об ошибке .С 2015 года обновлений нет.На сегодняшний день, есть ли обходные пути с этой проблемой?

Вариант использования приведен ниже;

  1. Доступ пользователя к странице
  2. Установите флажок или переключатель
  3. Переход на другую страницу (либо через адресную строку, либо по ссылке через тег)
  4. После загрузки другой страницы нажмите кнопку возврата края (или Alt + Стрелка влево)
  5. Предыдущее состояние / значение флажка или переключателя должно сохраняться или сохраняться.

В данный момент состояние / значение очищается при переходе обратно на страницу с помощью кнопки «Назад» на Edge.

1 Ответ

0 голосов
/ 25 апреля 2019

Да, я воспроизводю проблему на моей стороне, состояние / значение, если флажок или переключатель не сохранены в браузере Edge.Это известная проблема, я отправил отзыв об этой проблеме в Edge Platform.

В качестве обходного пути я предлагаю вам попробовать использовать Веб-хранилище (например, локальное хранилище или хранилище сеансов).чтобы сохранить состояние / значение, затем перезагрузите страницу, сбросьте эти состояние / значение.

Код, как показано ниже:

<head>
    <meta charset="utf-8" />
    <title></title>
    <script>
        function myfunction() {
            //check whether the browser support storage
            if (typeof (Storage) !== "undefined") {
                // Code for localStorage/sessionStorage.

                if (sessionStorage.checkboxstatus) {
                    document.getElementById("Checkbox1").checked = true;
                }
                else {
                    document.getElementById("Checkbox1").checked = false;
                }

                if (sessionStorage.radiostatus) {
                    document.getElementById("Radio1").checked = true;
                }
                else {
                    document.getElementById("Radio1").checked = false;
                }

                //checkbox click event: use session storage to store the state
                document.getElementById("Checkbox1").addEventListener("click", function () {
                    if (document.getElementById("Checkbox1").checked) {
                        sessionStorage.checkboxstatus = true;
                    }
                    else {
                        sessionStorage.checkboxstatus = false;
                    }
                });
                //radio button click event: to store the state.
                document.getElementById("Radio1").addEventListener("click", function () {
                    if (document.getElementById("Radio1").checked) {
                        sessionStorage.radiostatus = true;
                    }
                    else {
                        sessionStorage.radiostatus = false;
                    }
                });
            } else {
                // Sorry! No Web Storage support..
                alert("No web storage support");
            }
        };
    </script>
</head>
<body onload="myfunction();">
    <input id="Checkbox1" type="checkbox" />
    <input id="Radio1" type="radio" />
    <a href="/HtmlPage2.html">Link</a>
</body>

результат, подобный следующему:

enter image description here

...