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(""); когда я открываю свой сайт, а он не открывает только белый экран. Ребята, вы можете помочь??