Перерыв при изменении 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. Арх. Кстати, в FF этого перенаправления не происходит, и я уже пытался перезапустить Chrome. Я чувствую, что действительно перепробовал все и ничего не добился, что, надеюсь, означает, что я собираюсь повысить свой уровень как разработчик? Пожалуйста?

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

66
задан PC Jones 25 June 2012 в 18:18
поделиться