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