window.location.href не работает для Chrome

Этот код работает для Firefox, но не для Chrome. Я считаю, что это window.location.href, но что я могу сделать, чтобы эта работа для Chrome. В основном это переключает страницы.

<!DOCTYPE html>
<html>
 <head>
    <script src="http://code.jquery.com/jquery-1.6.4.js"></script>
<script>
$(document).keydown(function(e){    
    if (e.keyCode == 37) {  // left
       window.location.href = $('#prev').attr('href');   
       return false;
    } else if (e.keyCode == 39) {  // right
       window.location.href =  $('#next').attr('href');  
       return false;
    }
});


</script>


   </head>
 <body>


  <div style="display:hidden;">
    <a id="next" href=<?php echo "readerapp.php?mode=$mode&pagenumber=$next";?>></a>
    <a id="prev" href=<?php echo "readerapp.php?mode=$mode&pagenumber=$last";?>></a>
</div>
   </body>
</html>

5 ответов

Решение

Попробуйте это с помощью window.location:

$ (Документ).keydown(функция (е) {

if (e.keyCode == 37) {  // left
   window.location = $('#prev').attr('href');   
   return false;
} else if (e.keyCode == 39) {  // right
   window.location =  $('#next').attr('href');  
   return false;
}

});

У меня была такая же проблема, и я нашел два пути ее решения. Первый способ - установить интервал ожидания, поэтому код будет выглядеть так:

setTimeout(function () { document.location.href = "nextpage.html" }, 1000);

Второе решение заключается в назначении следующей страницы для window.location, и это будет выглядеть следующим образом:

window.location.assign("nextpage.html");

Надеюсь, поможет.

Пути, которые вы отправляете в браузер, являются относительными. Вам нужно будет предоставить JS полный URL-адрес. Попробуй это:

window.location.href = 'http://'+ window.location.host + $('#next').attr('href');

В качестве быстрого примера:

На этой странице откройте консоль в Chrome (Shift+CTRL+j) и введите:

window.location.href = 'http://' + window.location.host + $('.bottom-notice a:last').attr('href');

Он перенаправит вас на https://stackru.com/questions/ask

Итак, я знаю, что это немного старая тема, но поскольку это результат №1 в Google при поиске, решил, что добавлю сюда свои два цента.

Для меня проблема заключалась в том, что я делал это в fancyBox и вызывал "parent.jQuery.fancybox.getInstance(). Close();" сразу после. В IE это работало нормально, но я думаю, что в Chrome, вызывая.close(), это мешало перенаправлению работать.

Решением было просто удалить эту строку. Window.location.href все равно принудительно закрыл его, так как главное окно перенаправлялось.

Нажав на input type="submit" не позволяет сценарию устанавливать location.href

input type="button" работает отлично.

После перезапуска Chrome проблема ушла для меня.

Другие вопросы по тегам