1

异地第三方小部件的脚本之一在执行期间中断,并将我主页上的所有流量重定向到他们的。

由于我无法杀死它们,我要么不得不杀死脚本,要么想办法杀死第三方 JavaScript 可能会重定向浏览器的任何尝试。我发现的最有希望的事件是.unload()and window.onbeforeunload,我的想法是希望检查 GET 请求,然后验证 URL 是否与我页面上的任何有效链接不匹配,这没问题,只是我不知道如何获取事件的 GET 值,考虑到它不受页面上的任何点击或操作的约束,而是第三方 .js 中的虚假内容或其他内容?

有人有幸找到解决此类问题的方法吗?

4

1 回答 1

0

我知道没有办法拦截第 3 方 javascript 可能设置 window.location 导致重定向并预检它的所有可能位置。它不是一种方法,它只是一个设置为没有方法可以替换/覆盖的属性。

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

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

如果您或其他人实际上可以弄清楚为什么第 3 方故意导致重定向,那么也许您可以专注于确保这种情况不会再次发生,但是您没有给我们任何信息,所以我们不能真的有帮助。

于 2012-01-28T21:33:55.757 回答