자바 스크립트에서 iFrame 삽입 감지
특정 페이지가있는 애플리케이션이 있습니다. 페이지 A라고하겠습니다. 페이지 A는 때로는 최상위 페이지이지만 때로는 페이지 B 내에 iframe으로 포함됩니다. 모든 페이지는 동일한 서버에서 가져 오며 교차 도메인 문제.
A 페이지에서 실행되는 greasemonkey 스크립트가 있습니다. greasemonkey 스크립트가 페이지 A가 iframe 컨텍스트 내에 있는지 여부를 어떻게 감지 할 수 있습니까?
페이지 A 자체에 프레임이있는 경우 프레임 길이를 보면 일반적으로 분석됩니다 (이 특정 인스턴스의 경우가 아닐 수도 있음을 알고 있습니다). 더 안정적이고 의미있는 테스트는 다음과 같습니다.
if (window!=window.top) { /* I'm in a frame! */ }
술어
(window.parent.frames.length > 0)
당신이 원하는 것을 말해 줄 것입니다.
if (top === self) { not in a frame } else { in a frame }
에서 웹 페이지가 iframe을 내부 또는 직접 브라우저 창에로드되고 있는지 어떻게 확인합니까?
위에서 언급했듯이 허용되는 솔루션은 IE8에서 작동하지 않습니다. 또한 검사로 window.parent.frames.length
인해 도메인 간 예외가 발생할 수 있습니다.
대신 var isInIFrame = top.location != self.location
IE8에서 작동하며 .NET Framework의 내용을 읽지 않는 한 도메인 간 위반을 일으키지 않습니다 top.location
.
window.frameElement
null이 아니고 nodeName이 "IFRAME"인지 사용 하고 확인하십시오.
참조 URL : https://stackoverflow.com/questions/925039/detect-iframe-embedding-in-javascript
'Programing' 카테고리의 다른 글
Bootstrap 3 Navbar의 브랜드 로고 중심 (0) | 2021.01.10 |
---|---|
Swift의 클래스 내에서 정적 변수에 액세스 (0) | 2021.01.10 |
PHP : 사용자 정의 오류 처리기-구문 분석 및 치명적인 오류 처리 (0) | 2021.01.10 |
SQL 구문을 사용하여 MySQL 테이블에서 마지막 레코드를 선택하는 방법 (0) | 2021.01.10 |
Rails & Devise : 레이아웃없이 로그인 페이지를 렌더링하는 방법? (0) | 2021.01.10 |