2011-02-23 14 views
5

पहला पोस्ट - हैलो! मैं मोडल विंडोज़ प्रदर्शित करने के लिए fancybox (Fancybox homepage) का उपयोग करता हूं। मैं इस div के अंदर एक आईफ्रेम के साथ एक छिपा div प्रदर्शित करने की कोशिश कर रहा हूँ। बहुत अच्छा काम करता है। दूसरी बार जब आप लिंक पर क्लिक करते हैं, तो यह आईफ्रेम लोड नहीं करता है (404 त्रुटि नहीं, केवल आईफ्रेम में कोई सामग्री नहीं है)। क्या कोई मदद कर सकता है?फैंसी बॉक्स iFrame को दूसरी बार नहीं खोल रहा

महत्वपूर्ण बिट्स:

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

और HTML:

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

फैंसी बॉक्स काम कर रहा है, उर यूआरएल के साथ अपने एक समस्या :) यू जब कहते हैं 'openIframeLink()' आप केवल कल्पना बॉक्स एक बार btw जरूरत है (मुझे लगता है कि) – Val

उत्तर

3

ऐसा लगता है कि fancybox डोम से iframe तत्व निकालता है और यह अपने खुद के कंटेनर में रखता है की तरह। फिर, जब आप fancybox को बंद करते हैं, तो यह इसे वापस डालने का प्रयास करता है जहां यह मूल रूप से था - लेकिन src विशेषता मान को खोने का प्रबंधन करता है।

फ़ैंक्सबॉक्स लड़के की आईफ्रेम खोलने की स्वीकृत विधि निम्न प्रतीत होती है।

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

एक तरह से यह नाकाम करने के लिए, iframe तत्व क्लोन करने के लिए, यानी

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

जाहिर नहीं आदर्श है .. मैं किसी को सुनने के में अधिक परिचित झंकार अच्छा लगेगा है।

+0

हाय! बहुत बहुत धन्यवाद। यह काफी नहीं था जो मैं चाहता था (शायद मेरी गलती) लेकिन आपने मुझे समस्या को ठीक करने के लिए बिल्कुल पर्याप्त दिखाया। 'फ़ंक्शन ओपन IframeLink() { \t/* fancybox से पहले स्रोत को पकड़ें */ \t theSrc = $ ("# data")। Attr (' src '); \t $ .fancybox ({ \t \t 'प्रकार' \t \t \t: 'इनलाइन', \t \t की 'href': '#data', \t \t onClosed \t \t: function() { \t \t \t $ ('# डेटा')। attr ('src', theSrc); \t \t} \t}); }; '- आपको बहुत धन्यवाद! – Djave

4

इस था एक ही समस्या है। Frode का आकलन है कि यह src विशेषता अलग करना था के आधार पर, मैं अपने fancybox फोन पर 'onClosed' कॉलबैक जोड़ा गया है और इसे वापस जोड़ने में सक्षम था:

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

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

Fancybox src विशेषता खो देता है। यहां एक वर्कअराउंड है जिसका उपयोग मैंने

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

यह पहले तत्व को जानने के बिना, src विशेषता पुनर्प्राप्त करने का मेरा तरीका है।

कोई मदद कर सकता है ..

$(".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); 
     } 
    }); 
}); 
संबंधित मुद्दे