2012-01-30 4 views
1

내부에있는 iframe이 somwhere의 비디오 링크입니다. iframe을 클릭하면 div가 팝업으로 표시됩니다.IFRAME을 클릭하기위한 트랩

<a href="javascript:alert();" class="iframelink"> 
       <iframe src="http://www.youtube.com/embed/zDNXx-PgU3k" width="213" height="195" frameborder="0"></iframe> 
      </a> 


$('.iframelink').click(function(){ 
     alert('iframe clicked. Open popup.'); 
}) 

어떻게? 하지만 실제로 다른 페이지 자바 스크립트 캔트 클릭 이벤트를 잡기 때문입니다. 어떨까요?

+0

어떤 클릭 이벤트를 캡처하려고합니까? – hunter

+0

@ hunter onClick? – reporter

+0

포인터가 요소 안에있는 동안 마우스 버튼이 눌러집니다. 마우스 버튼은 포인터가 요소 안에있는 동안 해제됩니다. – gandil

답변

2

iframe 내부의 링크에 핸들러를 연결해야하므로 iframe 내부에서 핸들러를 찾아야합니다. 이 시도.

$('a.iframelink iframe').contents()//Will get iframe contents 
.find('videoLinkSelector')//Pass the required selector 
.click(function(){ 
    //Write your code here 
}); 

contents() 참조 : 당신은 단지 그것의 상위 페이지와 같은 도메인에있는 경우에만 iframe이 리소스에 액세스 할 수 있습니다 http://api.jquery.com/contents/

참고.

+0

오리진 정책이 동일하기 때문에 iframe 콘텐츠가 다른 도메인에서 온 경우 작동하지 않습니다. – chrisv

+0

예, 다른 도메인의 모든 리소스에 액세스 할 수 없습니다. – ShankarSangoli

1

IFRAME (click-jacking)의 상단에 보이지 않는 요소를 배치하는 것 말고는 IFRAME의 이벤트가 전혀 들끓지 않는다고 생각하기 때문에 운이 나쁘다고 생각합니다. 조심하세요 - 당신은 위험한 영역에 있습니다. Thar는 괴물이됩니다.

P. 하나의 옵션은 IFRAME이 사이트의 페이지를 가리키는 것입니다. 그러면 onclick 이벤트를 추가 할 수 있습니다. 그러면 부모 요소에서 함수/이벤트가 실행됩니다.하지만 여전히 운이 좋지 않을 것입니다. 내가 생각하기에 FLASH 오브젝트를 클릭하면 발사됩니다.

+0

실제로는 iframe 내부에 비디오를 표시하고 싶지만 크기는 작습니다. 사용자가 iframe을 클릭하여 동영상을 실행하면 상자가 나타나고 동영상이 실행됩니다. 알아요.하지만 해결 방법이 있습니까? – gandil

+0

아아 알 겠어. 나는 네가 성취하려는 것을 오해했다. 사냥꾼의 대답이 더 적합 할 수 있습니다. 그런데 왜 동영상을 iframe 내부에 표시해야합니까? 동영상 미리보기 이미지를 페이지에 표시하고 onclick 이벤트를 확실히 첨부 할 수 있습니까? 물론 – Seidr

+0

. 거기에 어떤 방법으로 div에서 url의 비디오 축소판을 볼 수 있습니까? – gandil