[javascript] 자바 스크립트 콘솔에서 컨텍스트를 iframe으로 변경하는 방법이 있습니까?
웹킷 개발자 도구 / 방화범 콘솔에서 실행되는 자바 스크립트의 컨텍스트를 변경하여 페이지의 iframe 내부에서 실행되는 것처럼 코드를 실행하고 싶습니다.
별도의 페이지에서 iframe의 페이지를 열어서이 작업을 수행 할 수 있다는 것을 알고 있지만 부모 프레임과 상호 작용하는 코드를 실행하고 싶습니다.
답변
Chrome 15를 사용하면 콘솔의 범위를 변경할 수 있습니다. 콘솔 하단의 콘솔 지우기 버튼 옆 <top frame>
에 사용 가능한 프레임 목록을 제공하는 메뉴가 있습니다.
Firefox에는 현재 개발중인 유사한 기능이 있습니다.
명령 줄을 사용하여 프레임 을 탐색 할 수도 있습니다 .
var frame = document.getElementById("frame1").contentWindow;
cd(frame);
답변
기능 <iframe>
을 사용하여 s 에서 코드를 실행할 수 있습니다 window.frames[x]
. 예를 들면
window.frames[0].runFunction()
답변
오늘날의 Chrome (버전 52)에서는 개발자 도구의 “요소”탭에서 iframe을 선택하기 만하면됩니다. JS 콘솔에서 실행하는 모든 항목은 선택한 iframe의 컨텍스트에서 자동으로 실행됩니다.
예를 들어, 여기에서 iframe을 선택 document.location.pathname
했으며 콘솔에 입력 하면 주소 표시 줄의 URL 대신 iframe의 src 속성이 반환됩니다.
답변
방화범 솔루션의 경우 다른 질문에 대한 답변 을 참조하십시오 . 그러나 Dennis의 Chrome 솔루션과 같이 교차 도메인에서 작동하지 않습니다.
편집 : 최신 버전의 방화범을 사용하면 도메인 간 문제가 해결되었을 수 있습니다.
답변
기본적으로 스크립트 문 및 명령 실행은 최상위 창에서 수행됩니다. 프레임을 사용하는 경우 “cd ()”콘솔 명령을 사용하십시오.
cd ()
매개 변수없이 cd ()를 호출하면 최상위 창으로 돌아갑니다.
cd (window)
웹 페이지의 기본 최상위 창에서 프레임 창으로 명령 줄 식 평가를 변경할 수 있습니다.
자세한 정보는 여기
답변
cd(document.getElementsByTagName('iframe')[0]);