什么时候window.location改变?
我有一个网页,当它不应该是redirect,我试图找出谁在做。 首先我试图劫持window.location:
window.location = (function (location) { // location is now hidden inside a closure. We can override it var Location = Object.create(location); // Location is now our proxy. We can use it to catch changes window.__defineGetter__('location', function () { return Location }); window.__defineSetter__('location', function (x) { debugger; location = x; return x; }); // etc etc, considered assignments to location.href, location.search, location.host etc., as well as calls to location.replace and location.assign }(window.location));
在Chrome中完全没有用。 出于安全原因,您不能在window.location上执行setter和getter。 好。 接下来我尝试的是观察onunload和onbeforeunload:
['unload', 'beforeunload'].forEach(function (evName) { window.addEventListener(evName, function () { debugger; // Chance to check everything right before the redirect occurs }); });
我知道window.location的值会保持不变,直到onunload事件之后,再次出于安全原因,但我希望有其他的线索; 没有这样的运气。 接下来,我尝试在我自己的脚本中find可以分配window.location的每个点上的断点。 根据Chromedebugging器,它们都没有被击中。 哎呀。 顺便说一句,这个redirect不会发生在FF,我已经尝试重新启动Chrome。 我觉得我真的尝试了一切,没有任何地方,希望这意味着我即将升级为开发人员? 请?
在我的任何浏览器,操作debugging器的人,是否有任何方式打破了redirect页面位置的路线? 我知道有允许自动访问这些信息的安全隐患,但没有什么特权的开发人员,并允许一种方式来做到这一点? 如果没有,处理这种情况的正常方法是什么? 这似乎很普遍,我不认为任何人都喜欢在一个概念上简单的问题上被封锁几个小时或几天。 TIA
networking标签可以帮助你,打开保存日志checkbox,发起人列将包含导致redirect的JavaScript位置。