window.location.replace () не работает для перенаправления браузера - PullRequest
12 голосов
/ 17 января 2012

Я делаю навигацию по страницам, но этот код не работает, в чем проблема?

<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>

Ответы [ 5 ]

29 голосов
/ 17 января 2012

Не используйте .replace() для этого, просто присвойте значение напрямую.

* ** +1004 1005 * Пример

$("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"; 
    }

});
19 голосов
/ 14 августа 2012

Ваш код имеет синтаксическую ошибку.Ваша конечная скобка находится внутри кавычки, а не снаружи ...

Попробуйте:

<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>
4 голосов
/ 20 апреля 2016

У меня были проблемы с этим в Chrome. Я пытался загрузить другую страницу из того же домена, но использовал абсолютный URL (например, www.example.com/newurl). Я изменил его на относительный URL (/newurl), и теперь он работает.

Я думаю, что это функция безопасности, которая предотвращает перенаправление пользователя на вредоносный сайт с помощью некоторой рекламы на JavaScript.

2 голосов
/ 05 сентября 2014

У меня была проблема с неработающим при перезагрузке той же страницы в 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 работают без перенаправления на фальшивую страницу.

1 голос
/ 24 января 2012

Я использовал это, и это работает

$(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;
        }
    });

});
...