window.location改变时中断?

PC *_*nes 66 javascript firebug google-chrome google-chrome-devtools

我有一个页面,当它不应该重定向时,我正在试图找出谁在做它.首先我试着劫持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));
Run Code Online (Sandbox Code Playgroud)

这在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
    });
});
Run Code Online (Sandbox Code Playgroud)

我知道window.location的值会在onunload事件之后保持不变,再次出于安全原因,但我希望得到一些其他的线索; 没有这样的运气.我接下来尝试在我自己的脚本中找到的每个点都设置断点,其中可能会分配window.location.根据Chrome调试器,它们都没有被击中.哎呀.顺便说一下,这种重定向不会发生在FF中,我已经尝试重新启动Chrome.我觉得我真的尝试了一切并且无处可去,这有望意味着我即将成为一名开发人员?请?

在我的任何浏览器中,操作调试器的人是否有办法打破重定向页面位置的界限?我理解允许自动访问该信息有安全隐患,但是没有什么能让开发人员获得特权并允许一种方法来实现它吗?如果没有,处理这种情况的正常方法是什么?这似乎很常见,我认为没有人喜欢在概念上简单的问题上被阻塞数小时或数天.TIA

小智 34

网络选项卡可以帮助您,打开保留日志复选框,启动器列将包含导致重定向的javascript位置.

  • 这将是有用的,除了在我的情况下它只是说"其他".不是很有帮助,Chrome.`:/` (25认同)
  • 在我的例子中,表单提交也被报告为 `Other` 忘记了 `onsubmit="event.preventDefault()"` (5认同)
  • 那么当它说“其他”时,您会怎么做?似乎没有解决方案。 (2认同)
  • 我遇到了完全相同的问题,在我的例子中,这是在 head 部分定义的“<meta http-equiv="refresh" content="5">”负责。据报道,发起者为“其他”。 (2认同)