异地第三方窗口小部件的一个脚本在执行期间中断,并将我主页上的所有流量重定向到他们的。
由于我无法杀死它们,我要么必须杀死脚本,要么想办法杀死第三方JavaScript可能会重定向浏览器的任何尝试。我发现的最有希望的事件是.unload()
和window.onbeforeunload
,我的想法是希望检查GET请求,然后验证URL与我页面上的任何有效链接不匹配,这是否定的问题,除了我不知道如何获得事件的GET值,因为它不受页面上的任何点击或操作的约束,而是在第三方的.js中出现了一些虚假的东西?
任何人都有幸运行这样的解决方案吗?
答案 0 :(得分:0)
我无法拦截第三方javascript可能设置window.location导致重定向和预检的所有可能位置。它不是一种方法,它只是一个属性设置,没有替换/覆盖的方法。
页面卸载事件只是让您有机会询问用户是否真的想要离开此页面,但它无法访问新页面目标。
我唯一能想到的是保持一个包含默认为false的布尔值的全局变量。在您可能在自己的代码中更改页面的所有可能位置,将该布尔值设置为true。在onbeforeunload处理程序中,检查该全局变量以查看它是否是您的代码所执行的操作。如果它不是您的代码所做的事情,则从onbeforeunload返回一条消息,以便提示用户是否确实要离开。但是,你无法阻止它(这是一个故意的浏览器设计)。如果他们对提示说“是”,他们会将页面留给新目的地。
如果您或其他人真正弄清楚为什么第三方无意中导致重定向,那么也许您可以集中精力确保不会再次发生这种情况,但是您没有给我们任何信息,所以我们对此无能为力。