2011-02-23 7 views
5

ilk gönderi - Merhaba! Modal pencereleri görüntülemek için fancybox (Fancybox homepage) kullanıyorum. Bu divın içinde bir iFrame ile gizli bir div göstermeye çalışıyorum. Harika çalışıyor. Bağlantıya ikinci kez tıkladığınızda, iFrame yüklenmez (404 hatası değil, sadece iFrame'de içerik yoktur). Biri yardım edebilir mi?Fantezi kutusu iFrame'i ikinci kez açmıyor

önemli bitleri:

<script type="text/javascript"> 
function openIframeLink() { 
    $.fancybox({ 
     'type'   : 'inline', 
     'href'   : '#data' 
    }); 
}; 
</script> 

Ve HTML: fancybox DOM'dan iframe elemanı ayıklar ve kendi kaba koyar gibi

<div id="hiddenElement"> 
    <iframe id="data" src="frames/frame4.php" width="100%" height="300"></iframe> 
</div> 
+0

, ur url ile bir sorun :) u 'openIframeLink()' yalnızca bir kez btw fantezi kutuya ihtiyacım (Bence) diyorsunuz – Val

cevap

3

görünüyor. Daha sonra, fantazi kutusunu kapattığınızda, orijinali olduğu yere yerleştirmeye çalışır - ancak src öznitelik değerini kaybetmeyi başarır.

Fan kutusunun onaylanmış bir iframe açma yöntemi aşağıdaki gibi görünüyor. atlatma

<a id="mylink" class="iframe" href="frames/frame4.php">mylink</a> 
<script type="text/javascript"> 
    $("#mylink").fancybox(); 
</script> 

bir yolu, .. ben birilerine daha tanıdık sesi duyacaksınız isteriz Açıkçası yani iframe öğesi klonlamak için ideal bir

function openIframeLink() { 
    $.fancybox({content: $('#data').clone()}); 
} 

değildir.

+0

Merhaba! Çok teşekkür ederim. Ne istediğimi tam olarak yapmadı (muhtemelen benim suçum) ama problemi çözmek için bana tam olarak yeterli olduğunu gösterdin. 'işlevi openIframeLink() { \t/* Fancybox'ın kaybolmadan önce src'yi yakala */ \t theSrc = $ (" # data "). Attr ('src'); \t $ .fancybox ({ \t \t 'tür' \t \t \t: inline, \t \t 'href': fonksiyonu() { \t \t \t $ (: '#data', \t \t \t \t onClosed '#data') attr ('src', theSrc); \t \t} \t}); }; '- çok teşekkür ederim! – Djave

4

bu Had aynı sorun. o src özelliğini sıyırma olduğu Frode yaptığı değerlendirmeye göre, benim fancybox çağrı 'onClosed' geri arama eklendi ve içinde geri eklemek mümkün oldu:

jQuery('#iframe_element').fancybox({ 
    'onClosed': reloadIframe 
}); 

function reloadIframe() { 
    jQuery('#iframe_element').attr('src','http://example.com'); 
} 
0

Fancybox src özelliğini kaybeder. İşte önceden elemanı bilmeden, ben

function openIframeLink() { 
    /* Grab the src before fancybox loses it */ 
    theSrc = $("#data").attr('src'); 
    $.fancybox({ 
     'type'  : 'inline', 
     'href'  : '#data', 
     onClosed  : function() 
     { 
      $('#data').attr('src', theSrc); 
     } 
    }); 
}; 
0

Bu src özelliğini kurtarma yöntemim beri kullanıyorum bir çözümdür.

birisi yardımcı olabilir .. fantezi kutu çalışıyor

$(".fancybox.iframe").each(function(){ 
    var target = $($(this).attr("href")); 
    var src = target.attr("src"); 
    $(this).fancybox({ 
     'type': "inline", 
     'content': target, 
     'onClosed': function(){ 
      target.attr("src", src); 
     } 
    }); 
});