해결해야 할 재미있는 문제가 있습니다. 요컨대 Internet Explorer는 window.onblur 이벤트를 사용하여 iFrame에 요소를 집중시킵니다. 이 때문에 그것은 재귀이고 당신은 iFrame 밖에서 아무것도 클릭 할 수 없습니다. 문제는 IE9, IE10, IE11 (IE8 이하는 아님)에서 발생합니다. 여기Internet Explorer Iframe 재귀 window.onblur
테스트를 : Try it (in IE)
여기에서 다운로드 : Download it
내 진짜 질문은 : iframe을 외부에서 iframe이 내부 window.onblur 이벤트를 덮어 쓸 수있는 방법이 있나요? 이 버그입니까? 그리고 Microsoft에보고해야합니까?
업데이트
당신의 도움 @ 조나단 샘슨에 대한감사합니다, 여기에서 볼 수 있듯이이 작품 :
See working example - IFrame을가 완전히
감사합니다. 사실 그것은 작동합니다. 그러나 IFrame이로드되거나 덮어 쓸 때까지 기다려야합니다. IFrame 외부에서이 작업을 수행하는 좋은 방법이 있기를 바랍니다. 그러나이 답변으로 문제가 해결되었습니다. – CodingYourLife
@CodingYourLife 이상적으로는 iframe 내에서 * window.top 대신 바인딩되는 코드 *를 변경하거나'window! == window.top '인 경우 단순히 onblur에 핸들러를 추가하는 것을 거부해야합니다. 위쪽 창에서 변경해야하는 경우 iframe의 DOMContentLoaded 또는 Load 이벤트에 바인딩하여 코드를 실행하여'setTimeout'을 사용할 필요가 없습니다. – Sampson
해결 방법에 대한 내 특정 문제가 해결되었습니다. 필자의 경우에는 iFrame src를 변경 한 탐색 탭이있었습니다 (다른 방법은 없었습니다). 로드 이벤트 (iFrame 컨텐츠 페이지에 액세스 할 수 없음)에 연결하지 못하고 onblur를 1 초마다 다시 설정해도 시도했지만 onblur가 줄 이후 null로 설정하지 않은 디버거에서도 볼 수있었습니다. 내가 한 것은 사용자가 현재 탭에서 나가길 원하는지 묻는 iFrame을 포함하여 페이지에서 새로운 onblur 이벤트였습니다. 그렇다면 IFrame src를 about : blank로 설정 한 다음 onblur를 덮어 씁니다. -> 그것을 "기능"으로 바꿨습니다 ^^ – CodingYourLife