$('#target').click(function() {
window.location.replace("http://www.google.com");
return false;
}); 我如何告诉chrome和所有其他浏览器停止他们正在做的事情,并立即重定向到另一个网页?
Firefox8.0会立即执行window.location.replace,正如我所希望的那样。
当我跨过上面的代码时,Chrome15.0.874.121正好越过window.location代码并返回false,然后进入后续的Jquery函数(换句话说,Chrome完成了整个调用堆栈,然后替换了URL)
我试图在许多不同的领域执行重定向,最大的问题是额外的Jquery可以为重定向增加3-5秒的时间,特别是在.ajax成功调用中。
我使用的是jQuery 1.7.1,没有javascript错误
我试过:
放置“返回假”的everywhere
--
不管我做什么,Chrome拒绝直接访问另一个网站,而不首先完成它的调用堆栈。请帮帮忙。
发布于 2011-12-14 21:58:24
$('#target').click(function() {
window.location.replace("http://www.google.com");
//THROW an exception is the only solution I've found so far
throw "Reloading Page";
}); 不幸的是,我没有找到更好的答案。毕竟,这不是jquery问题。我已经把所有的东西都删掉了:删除了所有的铬扩展名,删除了所有的外部文件,制作了一个完全空白的.html文件,其中包含了最起码的javascript和一个简单的onclick.而Chrome仍然在重定向。
因此:到目前为止,我唯一的答案是抛出一个异常,告诉Chrome在重定向之后停止运行JS。
多亏了Gijs
编辑:不幸的是,Chrome暂停抛出的异常是默认的,因此这实际上不是一个可部署的解决方案。
发布于 2011-12-14 03:29:47
你为什么不使用简单的Javascript
document.location = "http://google.com";发布于 2011-12-14 22:11:28
你试过event.preventDefault吗?
$('#target').click(function(evt) {
evt.preventDefault();
window.location.replace("http://www.google.com");
return false;
}); https://stackoverflow.com/questions/8499158
复制相似问题