2012-08-24 5 views
8

Freunde, Mein Problem ist, dass meine Seite ist wirklich langsam simeltaneously die Last zu laden, weil alle. Ich ziehe einen RSS-Feed, der, wenn du auf den "Artikel" -Button klickst, ein Modal, das das Innere davon enthält, öffnet. Das Problem ist, dass alle s gleichzeitig laden.Wie kann ich <iframes> laden nur auf einen Knopf klicken?

hier ist die Website: http://daisy.camorada.com/

ich versucht habe, eine src in dem aber einlegen, das nicht, weil ich die iframe Lasten erraten funktioniert, wenn die Seite geöffnet wird.

<button class='btn btn-primary' id='miguel'>TEST ME NOW</button> 
     <button class='btn btn-primary' id='jamison'>jamison</button> 
     <div id="yoyoyo"> 
      </div> 
      <iframe id="gogo"> 
       </iframe> 

<script> 
     $('#miguel').on('click', function() { 
      alert('clicked');   
      $('#gogogo').attr('href', 'http://www.google.com'); 

     }); 
    </script> 
    <script> 
     $('#jamison').on('click', function() { 
      alert('clicked JAMISON');  
      $("#yoyoyo").html("<h1>HELLO J</h1><br><iframe class='full-iframe' href='http://news.yahoo.com/three-killed-tribal-clash-libya-001717827.html'></iframe>"); 

     }); 

    </script> 

Antwort

26

Html:

<iframe id="myiFrame" data-src="http://my.url" src="about:blank"> 
</iframe> 

In Ihrem jQuery:

$("button").click(function(){ 
    var iframe = $("#myiFrame"); 
    iframe.attr("src", iframe.data("src")); 
}); 

Oder, wenn Sie alle iframes laden wollte, wenn Sie einen Knopf klicken ... stellen Sie sicher, sie haben alle eine data-src="your.url" Attribut, und dann die Schleife wie folgt durch:

$("button").click(function(){ 
    $("iframe").each(function(){ 
     $(this).attr("src", $(this).data("src")); 
    }); 
}); 
+0

Dank ahren. Ich habe deinen Code unter daisy.camorada.com/test.php neu erstellt, leider funktioniert es nicht richtig. Ideen? –

+1

@AlexSpencer - Der Code ist perfekt - die einzige Sache ist, hat Google nicht zulassen, dass sich in einem Iframe eingebettet werden! Probieren Sie eine andere Seite aus! (ZB yahoo.com) – ahren

+0

@ahren Wie kann ich es funktionieren, wenn es mehr als ein iframe, aber es muss separat ausgelöst werden. zwei verschiedene Tasten und zwei verschiedene iframes. – Lemdor

6

Zuerst müssen Sie nicht ein Element $('#gogogo'). Der Rahmen ist #gogo.

Zweitens setzen es src nicht href

$("#myframe").attr('src', 'http://site.com'); 

Wenn Sie es nur einige HTML festlegen möchten, und nicht eine URL, verwenden Sie diese:

$("#myframe").contents().find('html').html("hello"); 

Here's a demo

+0

sachleen, habe ich deine Methode hier versucht: http://daisy.camorada.com/test2.php vergeblich. Sind Sie sicher, dass Sie den Quellcode eines Iframes dynamisch ändern können und es