2014-12-18 5 views
4

iframe을 사용하여 외부 URL을로드하고 있습니다. 구조는 다음과 같습니다 -iframe에 스크롤 이벤트 바인딩

<iframe id="iframe-wrapper" src="http://blog.kpmg.ch/" style="width: 100%; height: 100%; overflow-y: scroll"></iframe> 

iframe 내용을 스크롤 할 때 뭔가를하려고합니다. 나는 여러 가지 방법을 시도했지만 아무 것도 효과가 없었다.

1) jQuery iframe scroll event (IE)

$(window).load(function(){ 
     $($('#iframe-wrapper').contents()).scroll(function(){ 
     alert("Scrolling"); 
     }); 
    }); 

2) jQuery iframe scroll event (IE)

$('#iframe-wrapper').load(function(){ 
     $($(this)[0].contentWindow).scroll(function(){ 
     alert("Scrolling"); 
     }); 
    }); 

3) How to make IFRAME listen to scroll events as parent when click event within parent iframe is triggered

$("#iframe-wrapper").load(function(){ 
    var iframeContent = getFrameTargetElement(document.getElementById("iframe-wrapper")); 
    iframeContent.onscroll = function(e){ 
     alert("Scrolling"); 
    };   
}); 

4) Jquery and binding an event to an iframe

,691 - 여기에 내가 이미 시도 몇 가지 있습니다
$("#iframe-wrapper").load(function(){ 
    $("#iframe-wrapper").contents().find("body").scroll(function(e) { 
     alert("Scrolling"); 
    }); 
}); 
+0

'$ ("if iframe-wrapper"). scroll (fn);'시도해 보셨습니까? – Jai

+0

복제물은 본 적이 없거나 시도 되어도 작동 할 수있는 것이 아닙니다! 나는 이미 링크를 시도했다. 내가 보여준 세 번째 예를 확인하고 내가 잘못한 곳을 기쁘게 할 수 있다면 나를 도울 것이다. 전체 질문을 읽고 이해하기 전에 중복 된 것을 찾지 마십시오. :) – Shuvro

+0

@Jai, 그래, 나는 그것을 벌써 시도했다, 나를 위해 일하지 않았다. 나는 여기서 무엇이 잘못 될지 모른다. iframe이 완전히로드 된 후 이벤트가 바인딩되어야하는 곳을 발견했습니다. 그래서 나는 그런 식으로 시도하지 않았다. – Shuvro

답변

1

이것은 작동하지 않습니다. 동일 출처 정책에 의한 것입니다. 귀하의 페이지와 iFrame의 소스가 같은 도메인에 있지 않기 때문에 이벤트는 메인 페이지에서 실행되지 않습니다. 여기에 대해 자세히 알아보기 :
https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy

어쩌면 당신이 이러한 솔루션 중 하나를 사용하여 작업 할 수 있습니다 :
Ways to circumvent the same-origin policy

그래서 외부 URL에 대한 (안 같은 도메인)이 항상 문제가 될 것입니다.

+0

답장과 링크를 보내 주셔서 감사합니다. 적어도 지금은 문제의 원인과 무엇을해야하는지 알고 있습니다. 이것이 다른 솔루션이 나를 위해 작동하지 않는 이유입니다. 해결 방법을 찾아야합니다. – Shuvro

+0

나는 (postmessage API를 사용하여) 주위를 둘러 보는 방법을 제안하는 다른 스레드 (질문에 대한 설명)로 안내했으나 두 페이지 (상위와 iframe)를 제어 할 수있는 경우에만 작동합니다. 그것이 사실이 아니라면, 당신은 당신이 원하는 것과 좋은 이유로 할 수있는 방법이 없습니다. –

관련 문제