window.location.replace()无法重定向浏览器
我用页面导航,但这段代码不起作用,有什么问题?
$(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)"; } }); });
不要为此使用.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"; } });
您的代码有语法错误。 你的最后一个括号是在引号里面而不是在…之外
尝试:
并非所有浏览器都支持window.location.replace。 始终支持分配位置值。 但是,使用替换而不是分配位置值的原因是您不希望当前URL显示在历史记录中,或者在使用后退按钮时显示。 由于这并非总是可行,您只需要满足于可能的情况:
我在Chrome中遇到了这个问题。 我试图从同一个域加载另一个页面,但使用的是绝对URL(例如www.example.com/newurl
)。 我将其更改为相对URL( /newurl
),现在可以使用了。
我的想法是,这是一项安全function,可防止用户通过某些javascript广告重定向到恶意网站。
我在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在没有重定向到虚假页面的情况下工作。
我使用了它,这是工作
$(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; } }); });