2011-08-23 12 views

Odpowiedz

21

To zadziałało dla mnie.

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

Więc jeśli 'src' jest zakodowane w html DOM, zmień je na' data-src', a następnie na żądanie zmień na 'src', aby załadować zawartość? Ponadto moje zdarzenie nie opiera się na przewijaniu, ale raczej na kliknięciu, że ': target zawiera' div'. – Steve

+0

@Max Masz to. – alex

+0

W ogóle wyjaśnienie na dole strony? – alex

0

Zawsze można włączyć atrybut src do wartości około: puste, a po uruchomieniu zdarzenia kliknięcia ustaw atrybut src na adres URL, do którego ma prowadzić nawigacja.

+0

iframe 'src' jest zakodowane na stałe w kodzie HTML DOM i nie chce robić zbyt wielu manipulacji DOM, zastępując go wartością: blank, a następnie zastępując ją powrotem z URL (które muszą być przechowywane jako zmienna). – Steve

0

Czy można ustawić src na about: blank? Lubię to?

http://jsfiddle.net/MaUfH/

+0

"Element iframe" jest osadzony w kodzie HTML strony i ładowany podczas ładowania strony, podczas gdy przykład ładuje element 'iframe' onClick. To nie działa w moim przypadku. – Steve

3

similar question był ostatnio pisał specyficzne iFrames z kartami Twitter Bootstrap opartych, które answered stosując technikę Dzwonię Lazy Loading of iFrames. Js/jquery jest następująca; zobacz pełny kod w tym znaczników HTML na skrzypcach lub na mojej odpowiedzi na OP:

<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

Jeśli chcesz to zrobić w WordPress

Tutaj jest automatyczne, zażądać redukcji, roztwór

w WordPress postaci wtyczki

Oto WordPress wtyczki można pobrać i zainstalować ręcznie przez WordPress plugin repozytorium. Stworzyłem to dzisiaj, aby poradzić sobie z tą sytuacją. Żadne zmiany w treści nie są potrzebne, działa to automatycznie po aktywowaniu na dowolnym i wszystkich elementach iframe.

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