2011-08-23 11 views
15

के साथ मैं jQuery image lazy load plugin के समान कुछ ढूंढ रहा हूं, लेकिन iframe एस के लिए।आलसी लोड iframe (देरी स्रोत http कॉल) jquery

+1

बेस्ट शर्त सिर्फ डोम करने के लिए iframe जोड़ नहीं है जब तक आप इसे लोड करना चाहते हैं, भ्रम का कोई मौका नहीं तो ... – DaveRandom

+0

आइफ्रेम कठिन डोम में कोडित है। मेरे पास मैन्युअल रूप से उन्हें सम्मिलित करने का विकल्प नहीं है, अन्यथा यह सबसे आसान मार्ग होगा। – Steve

उत्तर

21

यह मेरे लिए काम किया।

var iframes = $('iframe'); 

$('button').click(function() { 
    iframes.attr('src', function() { 
     return $(this).data('src'); 
    }); 
}); 

iframes.attr('data-src', function() { 
    var src = $(this).attr('src'); 
    $(this).removeAttr('src'); 
    return src; 
}); 

jsFiddle

+1

तो यदि डीओएम के एचटीएमएल में 'src' हार्ड कोड किया गया है, तो उन्हें' डेटा-src' में बदलें, फिर मांग को लोड करने के लिए इसे 'src' में बदल दें? साथ ही, मेरी घटना स्क्रॉल पर आधारित नहीं है, बल्कि क्लिक करें कि 'लक्ष्य' युक्त 'div' है। – Steve

+0

@ मैक्स आपको मिल गया। – alex

+0

डाउनवोट स्पष्टीकरण बिल्कुल? – alex

0

आप हमेशा src विशेषता को निम्न के बारे में बता सकते हैं: खाली और फिर जब आपका क्लिक ईवेंट आग लगती है, तो उस URL को src विशेषता दें जिसे आप नेविगेट करना चाहते हैं।

+0

iframe 'src' को डीओएम के एचटीएमएल में कड़ी कोडित किया गया है और इसे लगभग रिक्त स्थान से बदलकर बहुत अधिक डोम मैनिपुलेशन नहीं करना चाहता है: फिर इसे यूआरएल के साथ वापस लेना (जिसे इसे संग्रहीत करने की आवश्यकता है एक परिवर्तनीय)। – Steve

0

क्या आप इस बारे में src को रिक्त स्थान पर सेट कर सकते हैं? इस कदर?

http://jsfiddle.net/MaUfH/

+0

'iframe' पृष्ठ के HTML में एम्बेड किया गया है और पृष्ठ लोड पर लोड किया गया है, जबकि आपका उदाहरण' iframe' onClick लोड करता है। यह मेरे मामले में काम नहीं करता है। – Steve

3

एक similar question हाल ही में था के साथ ट्विटर बूटस्ट्रैप आधारित टैब, जो मैं answered iFrames के लिए विशिष्ट तैनात एक तकनीक मैं Lazy Loading of iFrames फोन कर रहा हूँ का उपयोग कर। जेएस/jquery निम्नानुसार है; बेला में या ओ पी करने के लिए मेरी प्रतिक्रिया पर html मार्कअप सहित पूर्ण कोड देखें:

<script> 
$('#myTabs').bind('show', function(e) { 

// identify the tab-pane 
paneID = $(e.target).attr('href'); 

// get the value of the custom data attribute to use as the iframe source 
src = $(paneID).attr('data-src'); 

//if the iframe on the selected tab-pane hasn't been loaded yet... 
if($(paneID+" iframe").attr("src")=="") 
{ 
    // update the iframe src attribute using the custom data-attribute value 
    $(paneID+" iframe").attr("src",src); 
} 
}); 
</script> 
0

आप

यहाँ है एक स्वचालित, को कम करने का अनुरोध वर्डप्रेस में ऐसा करना चाहते हैं, तो समाधान

WordPress प्लग इन प्रपत्र

यहाँ में एक वर्डप्रेस प्लगइन डाउनलोड करने और मैन्युअल रूप से वर्डप्रेस प्लगइन भंडार के माध्यम से स्थापित कर सकते हैं। मैंने आज इस स्थिति को संभालने के लिए इसे बनाया है। सामग्री में कोई बदलाव की आवश्यकता नहीं है, यह स्वचालित रूप से किसी भी और सभी iframes पर सक्रिय हो जाने पर काम करता है।

https://wordpress.org/plugins/lowermedia-iframes-on-demand/

संबंधित मुद्दे