Jquery 重定向的第三方脚本的全局拦截器

Jquery 重定向的第三方脚本的全局拦截器,jquery,redirect,intercept,Jquery,Redirect,Intercept,一个非现场第三方小部件的脚本在执行过程中中断,并将我主页上的所有流量重定向到他们的 因为我无法杀死它们,所以我要么必须杀死脚本,要么想出一种方法杀死第三方JavaScript可能对浏览器重定向的任何尝试。我发现的最有希望的事件是.unload()和window.onbeforeunload,我的想法是希望检查GET请求,然后验证URL是否与我页面上的任何有效链接都不匹配,这没什么问题,只是我不知道如何获取事件的get值,因为它不绑定到页面上的任何单击或操作,而是第三方的.js中的虚假内容 有人有

一个非现场第三方小部件的脚本在执行过程中中断,并将我主页上的所有流量重定向到他们的

因为我无法杀死它们,所以我要么必须杀死脚本,要么想出一种方法杀死第三方JavaScript可能对浏览器重定向的任何尝试。我发现的最有希望的事件是
.unload()
window.onbeforeunload
,我的想法是希望检查GET请求,然后验证URL是否与我页面上的任何有效链接都不匹配,这没什么问题,只是我不知道如何获取事件的get值,因为它不绑定到页面上的任何单击或操作,而是第三方的.js中的虚假内容


有人有幸找到了这样的解决方案吗?

据我所知,没有办法截获第三方javascript可能设置window.location的所有可能位置,从而导致重定向和预飞。它不是一个方法,只是一个属性,设置为“没有可替换/重写的方法”

页面卸载事件只是让您有机会询问用户是否真的想离开此页面,但它无法访问新页面的目标

我唯一能想到的就是保留一个全局变量,该变量包含一个默认为false的布尔值。在您自己的代码中所有可能更改页面的地方,您都将该布尔值设置为true。在onbeforeunload处理程序中,检查该全局变量以查看它是否是您的代码所做的事情。如果这不是您的代码所做的,那么您将从onbeforeunload返回一条消息,以便提示用户是否确实要离开。但是,你不能阻止它(这是一个故意的浏览器设计)。如果他们对提示说是,他们将离开页面到新的目的地


如果您或其他人能够真正找出第三方导致重定向的原因,那么您可以集中精力确保这种情况不会再次发生,但您没有提供任何信息,因此我们无法提供真正的帮助。

为什么不修补第三方小部件,使其不会重定向?我不认为有任何方法可以“验证”其他javascript可能设置window.location.com的所有位置,因为它是企业级应用程序的第三方专有web服务接口——它实际上不应该重定向,它们的事件报告类似于这样:“我们不知道发生了什么,也不知道为什么数百万用户在一个下午被重定向到我们的主页“试图防止任何第三方服务在将来再次发生这种情况。有意不讨论其脚本编写的任何解决方案,目的是寻求缓解可能导致执行期间重定向的第三方snafu的想法。对不起,如果不清楚的话。谢谢你的回复!我希望我能在前端设置一个通用的出口防护,这将是非常棒的,但实施这样一个解决方案的实用性在目前对我来说是不可行的。