gpt4 book ai didi

即使在 Chrome 上进行 URL 重定向后,Jquery 仍会继续运行

转载 作者:行者123 更新时间:2023-12-01 05:02:48 24 4
gpt4 key购买 nike

$('#target').click(function() {
window.location.replace("http://www.google.com");
return false;
});

如何告诉 Chrome 和所有其他浏览器停止正在执行的操作并立即重定向到另一个网页?

Firefox 8.0 立即执行 window.location.replace,正如我所希望的那样。

当我单步执行上面的代码时,Chrome 15.0.874.121 直接飞过 window.location 代码并返回 false,然后进入后续的 Jquery 函数(换句话说,Chrome 完成了整个调用堆栈,然后替换了 URL )

我尝试在许多不同的区域执行重定向,最大的问题是额外的 Jquery 可能会给重定向增加 3-5 秒的时间,尤其是在 .ajax 成功调用中。

我使用的是 jQuery 1.7.1,没有 JavaScript 错误

我已经尝试过:

  • 到处都放“return false”
  • 使用不同的重定向(location.reload(true)、location.href 等)
  • 将我的重定向一直移到任何其他功能之外
  • 将我的重定向完全移至单独的函数

无论我做什么,Chrome 都拒绝在不先完成其调用堆栈的情况下简单地转到另一个网站。请帮忙。

最佳答案

$('#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 问题。我已经精简了所有内容:删除了 chrome 中的所有扩展,删除了所有外部文件,用最少的 javascript 和简单的 onclick 创建了一个完全空白的 .html 文件...而 Chrome 仍然通过重定向进行攻击。

SO:到目前为止,我唯一的答案是抛出一个异常,告诉 Chrome 在重定向后停止运行 JS。

感谢Gijs

编辑:不幸的是,Chrome 默认会在抛出异常时暂停,因此这实际上并不是一个可部署的解决方案。

关于即使在 Chrome 上进行 URL 重定向后,Jquery 仍会继续运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8499158/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com