web-dev-qa-db-fra.com

Ajax / jQuery - Charger le contenu de la page Web dans une div lors du chargement de la page?

Sans utiliser les iframes, est-il possible de charger le contenu de

<div id="siteloader"></div>

Avec un site externe, par exemple somesitehere.com

Quand la page se charge? - Je sais comment charger le contenu d'un fichier, mais je ne sais pas comment charger tout un site?

Merci beaucoup,

32
CodeyMonkey

Cela est possible de faire sans un iframe spécifiquement. jQuery est utilisé puisqu'il est mentionné dans le titre.

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Load remote content into object element</title>
  </head>
  <body>
    <div id="siteloader"></div>​
    <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
    <script>
      $("#siteloader").html('<object data="http://tired.com/">');
    </script>
  </body>
</html>
48
Marcel

Jetez un coup d'œil à la fonction .load () de jQuery:

<script>
    $(function(){
        $('#siteloader').load('http://www.somesitehere.com');
    });
</script>

Toutefois, cela ne fonctionne que sur le même domaine du fichier JS.

36
faino

Avec jQuery, il est possible, cependant, de ne pas utiliser ajax.

function LoadPage(){
  $.get('http://a_site.com/a_page.html', function(data) {
    $('#siteloader').html(data);
  });
}

Puis placez onload="LoadPage()" dans la balise body.

Bien que si vous suivez cette voie, une version php pourrait être meilleure:

echo htmlspecialchars(file_get_contents("some URL"));
9
Njdart

Vous ne pouvez pas injecter du contenu provenant d'un autre site (domaine) à l'aide d'AJAX. La raison pour laquelle iFrame convient à ce genre de choses est que vous pouvez spécifier que la source provient d'un autre domaine.

2
Lee Davis