首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使在Chrome上的URL重定向之后,Jquery仍继续运行

即使在Chrome上的URL重定向之后,Jquery仍继续运行
EN

Stack Overflow用户
提问于 2011-12-14 03:23:56
回答 4查看 1.7K关注 0票数 2
代码语言:javascript
复制
$('#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

  • using
  • --不同重定向(location.reload(真)、location.href等)
  • 将我的重定向移到任何其他function
  • Moving之外--我的重定向完全是

--

不管我做什么,Chrome拒绝直接访问另一个网站,而不首先完成它的调用堆栈。请帮帮忙。

EN

回答 4

Stack Overflow用户

发布于 2011-12-14 21:58:24

代码语言:javascript
复制
$('#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暂停抛出的异常是默认的,因此这实际上不是一个可部署的解决方案。

票数 1
EN

Stack Overflow用户

发布于 2011-12-14 03:29:47

你为什么不使用简单的Javascript

代码语言:javascript
复制
document.location = "http://google.com";
票数 0
EN

Stack Overflow用户

发布于 2011-12-14 22:11:28

你试过event.preventDefault吗?

代码语言:javascript
复制
$('#target').click(function(evt) {
    evt.preventDefault();
    window.location.replace("http://www.google.com");
    return false;
}); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8499158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档