Как проверить, может ли пользователь вернуться в историю браузера или нет

129
задан Kara 10 August 2016 в 15:53
поделиться

3 ответа

Короткий ответ: Вы не можете.

Технически есть точный способ проверки свойства:

history.previous

Однако это не сработает. Проблема в том, что в большинстве браузеров это считается нарушением безопасности и обычно просто возвращает undefined.

history.length

Это свойство, предложенное другими...
Однако, длина не работает полностью, потому что она не указывает где в истории вы находитесь. Кроме того, он не всегда начинается с одного и того же числа. Браузер, для которого не настроена целевая страница, например, начинается с 0, а другой браузер, использующий лендинговую страницу, начинается с 1.

alt text

В большинстве случаев добавляется ссылка, вызывающая:

history.back();

или

 history.go(-1);

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

105
ответ дан 23 November 2019 в 23:45
поделиться

Я не уверен, что это работает, и это полностью не проверено, но попробуйте это:

<script type="text/javascript">

    function goBack() {
        history.back();
    }

    if (history.length > 0) { //if there is a history...
        document.getElementsByTagName('button')[].onclick="goBack()"; //assign function "goBack()" to all buttons onClick
    } else {
        die();
    }
</script>

И где-нибудь в HTML:

<button value="Button1"> //These buttons have no action
<button value="Button2">

EDIT:

Что вы также можете сделать, так это изучить, какие браузеры поддерживают функцию возврата (я думаю, что все они поддерживают), и использовать стандартный объект обнаружения браузера JavaScript, найденный и подробно описанный на этой странице. Тогда у вас может быть 2 разные страницы: одна для «хороших браузеров», совместимая с кнопкой «Назад», и одна для «плохих браузеров», предлагающая им обновить свой браузер

.
-5
ответ дан 23 November 2019 в 23:45
поделиться

Проверьте, равно ли window.history.length 0.

-7
ответ дан 23 November 2019 в 23:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: