Programing

자바 스크립트에서 iFrame 삽입 감지

lottogame 2021. 1. 10. 16:44
반응형

자바 스크립트에서 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.locationIE8에서 작동하며 .NET Framework의 내용을 읽지 않는 한 도메인 간 위반을 일으키지 않습니다 top.location.


window.frameElementnull이 아니고 nodeName이 "IFRAME"인지 사용 하고 확인하십시오.

참조 URL : https://stackoverflow.com/questions/925039/detect-iframe-embedding-in-javascript

반응형