Ответ 1
Это так же просто, как вы думаете:
$('.clickme').click(function() {
if(confirm("Are you sure you want to navigate away from this page?"))
{
history.go(-1);
}
return false;
});
С помощью onclick="history.go(-1);return false;"
пользователь может перейти на обратные страницы. Но если я хочу поместить метод подтверждения, прежде чем он заберет пользователя обратно. Как мне это сделать?
Я думаю, что это может быть достигнуто, делая что-то вроде ниже, но я не уверен, как перенаправить пользователя на обратную страницу?
$('.clickme').click(function() {
if(confirm("Are you sure you want to navigate away from this page?"))
{
//window.close();
// how to redirect to history.go(-1) ??
}
return false;
});
UPDATE
Также есть ли способ проверить, имеет ли история какие-то значения или пусто? Так что я могу предупредить пользователя, если он пуст?
Это так же просто, как вы думаете:
$('.clickme').click(function() {
if(confirm("Are you sure you want to navigate away from this page?"))
{
history.go(-1);
}
return false;
});
Попробуйте следующее:
if(confirm("Are you sure you want to navigate away from this page?"))
{
history.back();
}
$('.clickme').click(function() {
if(history.length != 0)
{
if(confirm("Are you sure you want to navigate away from this page?"))
{
history.go(-1);
}
return false;
}
alert("No history found");
return false;
});
<script type="text/javascript" language="javascript">
function goBack()
{
window.history.back()
}
window.onkeyup = function (e)
{
if (e.keyCode == 27) window.history.back();
}
</script>
Добавьте вышеприведенный код в своем главном разделе страницы. Здесь, когда пользователь нажимает кнопку Esc, он будет перенаправлен на предыдущую страницу просмотра, и если мы хотим добавить эту логику на кнопку "Назад", нажмите, а затем просто вызовите goback()
при событии клика.
$('.clickme').click(function() {
if(history.length != 0)
{
if(confirm("Are you sure you want to navigate away from this page?"))
{
document.location.replace(document.referrer)
}
return false;
}
alert("No history found");
return false;
});
(Этот код в значительной степени зависит от ответа Dodswarm.)