[英]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.