web-dev-qa-db-fra.com

Comment charger une url dans iframe avec Jquery

Je veux charger un iframe au clic, voici ce que j'ai jusqu'à présent:

$("#frame").click(function () { 
      $('this').load("http://www.google.com/");
    });

Ça ne marche pas C'est le code complet: JS Bin

41
Youss
$("#button").click(function () { 
    $("#frame").attr("src", "http://www.example.com/");
});

HTML:

 <div id="mydiv">
     <iframe id="frame" src="" width="100%" height="300">
     </iframe>
 </div>
 <button id="button">Load</button>
95
Dogbert
$("#frame").click(function () { 
    this.src="http://www.google.com/";
});

Parfois, le langage JavaScript est encore plus cool et plus rapide que jQuery ;-)

9
Christophe

Essayez $(this).load("/file_name.html");. Cette méthode cible un fichier local.

Vous pouvez également cibler des fichiers distants (sur un autre domaine) en consultant: http://en.wikipedia.org/wiki/Same_Origin_policy

8
Chris

voici Iframe en vue:

<iframe class="img-responsive" id="ifmReport" width="1090" height="1200" >

    </iframe>

Chargez-le dans le script:

 $('#ifmReport').attr('src', '/ReportViewer/ReportViewer.aspx');
1
Luqman Cheema

Juste au cas où quelqu'un trébuche encore sur cette vieille question:

Le code était théoriquement presque correct dans un sens, le problème résidait dans l'utilisation de $ ('this') au lieu de $ (this), indiquant donc à jQuery de rechercher une balise. 

$(document).ready(function(){
  $("#frame").click(function () { 
    $(this).load("http://www.google.com/");
  });
});

Le script lui-même ne fonctionnera pas tel qu'il est actuellement, car la fonction load () elle-même est une fonction AJAX, et Google ne semble pas autoriser spécifiquement le chargement de cette page avec AJAX, être facile à utiliser afin de charger des pages de votre propre domaine en utilisant des chemins relatifs.

0
Paul Ghiran