我使用网页进行导航,但这段代码不起作用,有什么问题?
<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>
答案 0 :(得分:29)
请勿使用.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";
}
});
答案 1 :(得分:19)
您的代码有语法错误。你的最后一个括号是在引号内,而不是在...之外......
尝试:
<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>
答案 2 :(得分:4)
我在Chrome中遇到此问题。我试图从同一个域加载另一个页面,但使用的是绝对URL(例如www.example.com/newurl
)。我将其更改为相对网址(/newurl
),现在可以使用了。
我的想法是,这是一项安全功能,可防止用户通过某些javascript广告重定向到恶意网站。
答案 3 :(得分:2)
在 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可以在没有重定向到虚假页面的情况下工作。
答案 4 :(得分:1)
我用过这个,这是工作
$(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;
}
});
});
答案 5 :(得分:0)
使用这种方式:
window.history.pushState("", "", "new url");
window.location.reload();