簡體   English   中英

window.location.replace() 無法重定向瀏覽器

[英]window.location.replace() not working to redirect browser

我使用頁面進行導航,但此代碼不起作用,有什么問題?

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

不要為此使用.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"; 
    }

});

您的代碼有語法錯誤。 您的結尾括號在引號內而不是在外...

嘗試:

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

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 無需重定向到假頁面即可工作。

我在 Chrome 中遇到了這個問題。 我試圖從同一個域加載另一個頁面,但使用的是絕對 URL(例如www.example.com/newurl )。 我將其更改為相對 URL ( /newurl ),現在可以使用了。

我的想法是,這是一項安全功能,可防止用戶通過某些 javascript 廣告被重定向到惡意站點。

我用了這個,它的工作

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

});

使用這種方式:

window.history.pushState("", "", "new url");
window.location.reload();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM