window.location.replace() не работает для перенаправления браузера
Я делаю навигацию со страницами, но этот код не работает, какая проблема?
<script>
$(document).ready(function() {
$("body").keydown(function(event) {
if(event.keyCode == 37) { // left
window.location.replace("http://newsii.abudayah.com/photo/2)"; }
else if(event.keyCode == 39) { // right
window.location.replace("http://newsii.abudayah.com/photo/31)"; }
});
});
</script>
Ответы
Ответ 1
Не используйте для этого .replace()
, просто присвойте значение напрямую.
пример
$("body").keydown(function(event) {
if(event.keyCode == 37) { // left
window.location = "http://newsii.abudayah.com/photo/2";
}
else if(event.keyCode == 39) { // right
window.location = "http://newsii.abudayah.com/photo/31";
}
});
Ответ 2
У вашего кода есть синтаксическая ошибка. Ваша конечная скобка находится внутри цитаты не снаружи...
Пытаться:
<script>
$(document).ready(function() {
$("body").keydown(function(event) {
if(event.keyCode == 37) { // left
window.location.replace("http://newsii.abudayah.com/photo/2"); }
else if(event.keyCode == 39) { // right
window.location.replace("http://newsii.abudayah.com/photo/31"); }
});
});
</script>
window.location.replace не поддерживается во всех браузерах. Присвоение значения местоположения всегда поддерживается. Тем не менее, причина для использования вместо замены значения местоположения вместо того, чтобы назначать значение местоположения, заключается в том, что вы не хотите, чтобы текущий URL-адрес отображался в истории или отображался при использовании кнопки "Назад". Поскольку это не всегда возможно, вам просто нужно решить, что возможно:
<script>
$(document).ready(function() {
$("body").keydown(function(event) {
if(event.keyCode == 37) { // left
try { window.location.replace("http://newsii.abudayah.com/photo/2"); }
catch(e) { window.location = "http://newsii.abudayah.com/photo/2"; }
}
else if(event.keyCode == 39) { // right
try { window.location.replace("http://newsii.abudayah.com/photo/31"); }
catch(e) { window.location = "http://newsii.abudayah.com/photo/31"; }
}
});
});
</script>
Ответ 3
У меня были проблемы с этим в Chrome. Я пытался загрузить другую страницу из того же домена, но использовал абсолютный URL (например, www.example.com/newurl
). Я изменил его на относительный URL (/newurl
), и теперь он работает.
Моя мысль заключается в том, что это функция безопасности, которая предотвращает перенаправление пользователя на вредоносный сайт с помощью некоторого объявления javascript.
Ответ 4
У меня возникла проблема с тем, что он не работает при перезагрузке одной и той же страницы в Chrome. Выполнялось следующее:
window.location.replace("/mypage1.aspx?type=abc"); //redirect to fake page
window.location.replace("/mypage.aspx?type=abc"); //redirect to same page
Это немного взломать, но это, похоже, единственное, что заставляет перезагружать на одной странице в Chrome. IE и FF работают без перенаправления на поддельную страницу.
Ответ 5
Я использовал это, и он работает
$(document).ready(function () {
$(document).keydown(function(e) {
var url = false;
if (e.which == 37) { // Left arrow key code
url = $('.prev').attr('href');
}
else if (e.which == 39) { // Right arrow key code
url = $('.next').attr('href');
}
if (url) {
window.location = url;
}
});
});
Ответ 6
Я получил это location.replace(""); когда я открываю свой сайт, а он не открывает только белый экран. Ребята, вы можете помочь??