Chrome에서 인라인 자바 스크립트 리디렉션 전에 자바 스크립트 중단


94

인라인 자바 스크립트 리디렉션 ( window.location = "/anotherpage") 이있는 페이지를보고 있습니다. Chrome에서 페이지를로드하고 싶지만 리디렉션 라인을 비활성화하여 리디렉션되지 않고 페이지를 사용할 수 있습니다.

내가 시도한 것은 다음과 같습니다.

  • 개발자 도구-> Cog-> 일반-> JavaScript 비활성화. 페이지를로드하십시오. 리디렉션하지 않습니다 (예!). 하지만 여전히 페이지의 나머지 자바 스크립트가 실행되기를 원하지만 실행되지 않았습니다.

  • URL을 입력 한 다음 개발자 도구-> 소스-> 일시 중지 (F8)를 클릭하십시오. 아직 리디렉션되지 않았습니다 (예!) 이제 일시 중지를 해제하기 전에 리디렉션 라인을 비활성화하고 싶지만 해당 부분은 아직 개발자 도구에로드되지 않았습니다. 그래서 거기에 도착할 때까지 다른 파일 자바 스크립트 코드를 단계별로 시작할 것입니다 ?? 그러나 다른 파일 자바 스크립트에서 나가 자마자 즉시 리디렉션됩니다 (doh!).

할 수 있습니까? 자바 스크립트 한 줄을 비활성화하는 것이 쉬울 것이라고 생각했지만 난처했습니다.

답변:


144

개발자 도구-> 소스-> 이벤트 리스너 중단 점 (오른쪽 사이드 바)->로드-> 언로드 확인

이렇게하면 탐색 전에 전달되는 언로드 이벤트에서 디버거가 중단됩니다.


2
작업 답변에 대한 또 다른 감사합니다. "이것은 작동하지 않습니다"메시지에 대해 많은 찬성 투표를하는 이유를 듣고 싶습니다. 이전 Chrome 버전의 문제 였나요? 작동하지 않은 사람이 더 많은 정보를 제공 할 수 있습니까?
Christian Rondeau 2014-07-10

8
처음에는이 응답을보고 매우 기뻤지 만 작동하지 않음을 확인할 수 있습니다 (제안 된대로 언로드를 확인했지만 페이지 리디렉션이 계속 발생하고 페이지 소스에 중단 점을 설정할 기회가 없습니다). ㅏ). 첫 페이지가 "리디렉션"하는 방식과 관련이있을 수 있습니까? 내 경우 페이지 A (내가 디버깅하려는 자바 스크립트가있는 페이지)에서 B 페이지에 대한 POST (자바 스크립트를 통해)를 수행합니다.
Emil G

17
그것은 확실히 작동, 문제는 정말 도움이되지, 그래서 당신이 실제로 리디렉션 트리거 무엇을 볼 수 없습니다로 호출 스택이 비어 있다는 것입니다
유진 Kuzmenko

8
@EugeneKuzmenko 진지하게, 이것이 실제로 누군가를 돕는 방법을 모르겠습니다
Will P.

1
이는 페이지에 디버거가 중지 할 수있는 언로드 또는 beforeunload 처리기가있는 경우에만 작동합니다. 이러한 핸들러가 등록되지 않은 경우 디버거가 트리거되지 않습니다.
rumpel

43

다음을 수행하십시오.

  1. 개발자 도구 열기
  2. 소스 탭으로 이동
  3. 이벤트 리스너 중단 점 찾기
  4. 로드 옵션 확장
  5. 여기 언로드 옵션 확인

크롬 언로드 중단 점


@TomBrito beforeunload break (어리석은 신문 페이 월을 피하는 데 사용해야했던) 때 요소를 검사 할 수 있습니다. 언로드시 검사 할 수 없습니까? Chrome 71.0.3578.98에 있습니다.
linkD

12

페이지를 다시로드하는 데 잘못된 조건이있는 타사 JS 라이브러리가 있습니다. 이 때문에 페이지가 지속적으로 다시로드되었습니다. 잘못된 코드가 어디에 있는지 찾으려고했습니다.

"Event Listener Breakpoints"방법을 사용하려고했지만 언로드 이벤트에 스택 추적이 없다고 언급했듯이 꽤 쓸모가 없습니다.

솔루션 나를 위해 일했다 : 나는 샌드 박스 속성, 예를 들어이있는 iframe 태그가있는 페이지를 만들어 <iframe sandbox="allow-same-origin allow-scripts allow-popups allow-forms"></iframe>그 안에 내 사이트를 넣어. 이렇게하면 크롬 내부에서 보안 오류가 발생하고 콘솔은 JS가 위치 객체에 액세스하려는 위치를 보여줍니다. 그것을 클릭하고 코드를 볼 수 있습니다. 가장 좋은 점은 Chrome에 JS 압축 해제 기 (소스 창의 왼쪽 하단에있는 {} 버튼)가 있다는 것입니다. 이것은 영리하며 예쁜 인쇄 후에도 줄을 표시 할 수 있으므로 압축 된 JS에서도 볼 수 있습니다.

샌드 박스 속성에 대한 추가 정보 : https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-sandbox


이것은 코드 (해당 iframe에서)가 사용 top.location = "..."하지 않는 경우에만 작동합니다location = "..."
mems
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.