Подтвердить что ты не робот

Перерыв при изменении window.location?

У меня есть страница, перенаправляющая, когда этого не должно быть, и я пытаюсь выяснить, кто это делает. Сначала я попытался захватить 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. ОК. Следующее, что я пробовал, - это наблюдение onunload и onbeforeunload:

['unload', 'beforeunload'].forEach(function (evName) {
    window.addEventListener(evName, function () {
        debugger; // Chance to check everything right before the redirect occurs
    });
});

Я знал, что значение window.location останется неизменным до тех пор, пока не произойдет событие onunload, опять же по соображениям безопасности, но я надеялся на какой-то другой ключ; нет такой удачи. Затем я попытался установить точки останова в каждой точке, которую я могу найти в своих собственных сценариях, где возможно назначить window.location. Ни один из них не попадает в соответствии с отладчиком Chrome. Argh. Кстати, это перенаправление не происходит в FF, и я уже пробовал перезапустить Chrome. Я чувствую, что я действительно пробовал все и никуда не уходил, что, надеюсь, означает, что я собираюсь выступить в качестве разработчика? Пожалуйста?

Есть ли какой-либо способ в любом браузере для меня, человека, управляющего отладчиком, для разрыва строки, перенаправляющей расположение страницы? Я понимаю, что есть последствия для безопасности для автоматического доступа к этой информации, но разве нет ничего привилегированного разработчика и позволяет сделать это? Если нет, то какой нормальный способ справиться с такой ситуацией? Это кажется достаточно общим, и я не думаю, что кому-то нравится блокироваться в течение нескольких часов или дней по концептуально простой проблеме. ТИА

4b9b3361

Ответ 1

Вкладка "Сеть" позволяет вам включить флажок сохранения журнала, столбец инициатора будет содержать местоположение javascript, вызвавшее перенаправление.