2014-07-23 1 views
1

에 기반한 Fancybox2-AJAX에 의해 호출되는 Iframe에 URL 추가하기 AJAX를 통해 fancybox를 호출하면이 기능이 작동하지 않는다는 사실을 알았습니다.Iframe의 ID가

정적 예 작품 : 나는 이것을 가지고가 .txt 파일로 3 개 iframe을 끌어 fancybox2 - 아약스는 전화를 사용하여 index.html 파일에서 호출 할 때

<iframe id="videourl1" width="640" height="340" src="" frameBorder="0"></iframe> 
<iframe id="videourl2" width="640" height="340" src="" frameBorder="0"></iframe> 
<iframe id="videourl3" width="640" height="340" src="" frameBorder="0"></iframe> 

$("div.video-container iframe").each(function(){var idAdd=$(this).attr("id");$(this).attr("src","http://www.youtube.com/embed/"+idAdd+"?rel=0&autoplay=0&modestbranding=1&showinfo=0&autohide=1")}) 

지금 실패

index.html을 :

<iframe id="videourl" width="640" height="340" src="" frameBorder="0"></iframe> 
012 :

<a id="1" class="fancybox fancybox.ajax" href="text/1.txt">Link</a> 
    <a id="2" class="fancybox fancybox.ajax" href="text/2.txt">Link</a> 
    <a id="3" class="fancybox fancybox.ajax" href="text/3.txt">Link</a> 

텍스트 파일이 iframe을 포함

iframe이 AJAX에 의해 호출 될 때마다 실행되는 JS를 어떻게 코딩합니까?

+0

답변 : '$ ("fancybox.") fancybox ({afterShow :.. 함수() {$ ("div.video 컨테이너은 iframe") 각 (함수() {var idAdd = $ (this) .attr ("id"); $ (this) .attr ("src", "http://www.youtube.com/embed/"+ idAd d + "? rel = 0 & 자동 재생 = 0 & modestbranding = 1 & showinfo = 0 & 자동 숨기기 = 1 ")});)}) ' – RooksStrife

답변

-2

답변 :

$(".fancybox").fancybox({ 
    afterShow: function() { 
     $("div.video-container iframe").each(function() { 
      var idAdd = $(this).attr("id"); 
      $(this).attr("src", "http://www.youtube.com/embed/" + idAd‌d + "?rel=0&autoplay=0&modestbranding=1&showinfo=0&autohide=1") 
     }); 
    } 
}); 
+0

은 각 youtube 비디오에 직접 링크하고 클래스'fancybox.iframe'을 링크에 추가하는 것이 쉽지 않을까요? – JFK

+0

fancybox에는 세 개의 열이 있습니다. 하나는 YouTube 동영상과 다른 두 개의 콘텐츠와 이미지를 가지고 있습니다. 그래서 YouTube 동영상에 직접 링크 만하는 것이 아닙니다. 내가 놓친 게 아니라면. 정말 YouTube 링크를 동적으로 만들 필요는 없었 습니다만, iftame에 대한 id 변경과 yt url에 일치하는 것을 편집하고 매번 문자열을 yt로 전달하는 것을 더 쉽게 편집 할 수있을 것이라고 생각했습니다. 특히 다른 사람이 편집하면. 사람들은 항상 상대방을 잊어 버리고 원치 않는 비디오를 보거나 다른 임베드를 사용합니다. 나는 이것을 피하고 싶었다;) – RooksStrife

+0

안녕하세요 JFK - FB2로 정말 좋아 보이는 것 같아요. 새롭고/똑같은 문제가 있어요. #hash 태그가있는 페이지로 들어가면 FB가 실행되지만 위의 코드를 사용하면 YouTube 동영상이 채워지지 않습니다. CallBack AfterShow를 사용하는 이유는 확실하지 않습니다. 사이트를 방문한 다음 클릭하면 작동하지만 URL에서 직접 가져 오는 것은 아닙니다. 다음 주석의 코드 .... – RooksStrife

0

내용이로드 된 후 fancybox 콜백 afterLoad을 사용하여 javascript를 실행할 수 있습니다.

그러나 비디오를로드하는 모든 남이 할 필요는 보이지 않는 대신 단지 미디어 도우미 사용 :

<a class="fancybox-media" href="http://www.youtube.com/watch?v=opj24KnzrWo">Youtube</a> 

<script type="text/javascript"> 
$(document).ready(function() { 
    $('.fancybox-media').fancybox({ 
     helpers : { 
      media : {} 
    } 
}); 
</script> 

을});

+0

그냥 YouTube 동영상보다 더 많은 일이 있습니다. 나는 많은 콘텐츠를 가지고 있으며, 비디오와 함께 FancyBox에도 호출되지 않는 것은 무엇입니까. 벌거 벗은 뼈를 그냥 게시하십시오. 그래서 작동하지 않는 것으로 보이는 afterLoad를 추가하려고 시도했는데 잘못했을 수도 있습니다. {} $ (". fancybox") fancybox ({ afterLoad : function() { $ ("div.video-container iframe") 각 (function() {var idAdd = $ this .attr ("id"); $ (this) .attr ("src", "http://www.youtube.com/embed/"+ idAdd + "rel = 0 & autoplay = 0 & modestbranding = 1 & showinfo = 0 & autohide = 1") }); } }); – RooksStrife

+0

해결 - FacnyBox의 afterShow를 사용했습니다. – RooksStrife