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에서 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 이벤트가 끝날 때까지 동일하게 유지 될 것이라는 것을 알고 있었지만, 다른 단서를 기대하고있었습니다. 그런 행운이 없습니다. 다음으로 window.location이 할당 될 수있는 내 스크립트에서 찾을 수있는 모든 지점에 중단 점을 두려고했습니다. Chrome 디버거에 따르면 그들 중 누구도 히트하지 않습니다. 아아. 그런데이 리디렉션은 FF에서 발생하지 않으며 이미 Chrome을 다시 시작해 보았습니다. 진정으로 모든 것을 시도했지만 아무데도 얻지 못한 것 같은데, 개발자로서 레벨이 올라간다는 뜻인가요? 부디?
디버거를 조작하는 사람인 나에게 페이지 위치를 리디렉션하는 줄을 끊을 수있는 방법이 있습니까? 해당 정보에 대한 자동 액세스를 허용하는 보안 문제가 있음을 이해하지만 개발자에게 권한을 부여하고이를 수행 할 수있는 방법이 없는가? 그렇지 않다면 이와 같은 상황을 처리하는 일반적인 방법은 무엇입니까? 그것은 충분히 일반적으로 보이며 개념적으로 단순한 문제로 인해 몇 시간 또는 며칠 동안 차단되는 것을 좋아하지 않는다고 생각합니다. TIA
네트워크 탭은 로그 유지 확인란을 켜는 데 도움이됩니다. 이니시에이터 열에는 리디렉션을 일으킨 자바 스크립트 위치가 포함됩니다.
참고 URL : https://stackoverflow.com/questions/11194971/break-when-window-location-changes
'IT TIP' 카테고리의 다른 글
MVC 모델 개체, 도메인 개체 및 DTO의 차이점은 무엇입니까? (0) | 2020.11.28 |
---|---|
Python 세트에서 세트 제거 (0) | 2020.11.28 |
Startup.Configure에서 비동기 작업을 어떻게 처리합니까? (0) | 2020.11.28 |
NGINX의 프록시 응답에서 URL을 어떻게 다시 작성합니까? (0) | 2020.11.27 |
Safari를 제외한 모든 브라우저에서 작동하는 Flexbox 코드. (0) | 2020.11.27 |