55 votes

Intégrer une page externe sans iframe?

Existe-t-il un moyen d'intégrer une page Web externe sans utiliser d'iframe? J'ai accès aux deux sites. Je souhaite simplement que la page sur laquelle le contenu est incorporé soit redimensionnée en fonction du contenu incorporé (elle changera avec le temps et se trouvera sur plusieurs sites).

Merci!

EDIT: Je ne pense pas qu’AJAX fonctionnerait, car c’est intersite, et JavaScript ne vous permet pas de charger du contenu hors site (à ma connaissance).

47voto

Sudhir Points 50854

Vous pouvez charger la page externe avec jquery:

<script> $ ("#testLoad") .load ("http://www.somesite.com/somepage.html"); </ script>
<div id = "testLoad"> </ div>
// cela aiderait-il

35voto

ptriek Points 4095

Ou vous pouvez utiliser la balise object:

http://jsfiddle.net/7MaXx/

 <!--[if IE]>
<object classid="clsid:25336920-03F9-11CF-8FD0-00AA00686F13" data="http://www.google.be">
<p>backup content</p>
</object>
<![endif]-->

<!--[if !IE]> <-->
<object type="text/html" data="http://www.flickr.com" style="width:100%; height:100%">
<p>backup content</p>
</object>
<!--> <![endif]-->
 

2voto

tildy Points 601

La question est bonne, mais la réponse est: cela dépend de cela.

Si l'autre page Web ne contient aucun formulaire ou texte, vous pouvez par exemple utiliser la méthode CURL pour extraire le contenu exact et l'afficher ensuite sur votre page. Vous pouvez le faire sans utiliser d'iframe.

Toutefois, si la page que vous souhaitez incorporer contient par exemple un formulaire, elle ne fonctionnera pas correctement, car la gestion du formulaire se trouve sur ce site.

1voto

talbottsw Points 11

Qu'en est-il quelque chose comme ça?

 <?php
$URL = "http://example.com;
$base = '<base href="'.$URL.'">';
$host = preg_replace('/^[^\/]+\/\//','',$URL);
$tarray = explode('/',$host);
$host = array_shift($tarray);
$URI = '/' . implode('/',$tarray);
$content = '';
$fp = @fsockopen($host,80,$errno,$errstr,30);
if(!$fp) { echo "Unable to open socked: $errstr ($errno)\n"; exit; } 
fwrite($fp,"GET $URI HTTP/1.0\r\n");
fwrite($fp,"Host: $host\r\n");
if( isset($_SERVER["HTTP_USER_AGENT"]) ) { fwrite($fp,'User-Agent: '.$_SERVER

["HTTP_USER_AGENT"]."\r\n"); }
fwrite($fp,"Connection: Close\r\n");
fwrite($fp,"\r\n");
while (!feof($fp)) { $content .= fgets($fp, 128); }
fclose($fp);
if( strpos($content,"\r\n") > 0 ) { $eolchar = "\r\n"; }
else { $eolchar = "\n"; }
$eolpos = strpos($content,"$eolchar$eolchar");
$content = substr($content,($eolpos + strlen("$eolchar$eolchar")));
if( preg_match('/<head\s*>/i',$content) ) { echo( preg_replace('/<head\s*>/i','<head>'.

$base,$content,1) ); }
else { echo( preg_replace('/<([a-z])([^>]+)>/i',"<\\1\\2>".$base,$content,1) ); }
?>
 

0voto

Stephen Points 1

Une utilisation intéressante de ce serait si vous l'avez utilisé dans le marketing d'Email! Vous pouvez configurer une page d'atterrissage avec l'e-mail sur elle et de renvoi que la page de destination dans l'e-mail HTML.

Pourquoi? Parce que vous pouvez ensuite modifier le contenu en temps réel si vous avez une erreur. Donc, si l'e-mail est actualisé ou ouvert, il sera corrigé.

Mot de prudence. Cela peut ne pas s'afficher correctement dans tous les clients de messagerie. En fait, je sais il l'habitude. La variante HTML basé sur navigateur, client de messagerie et de l'appareil peut être nécessaire.

Ou juste ne pas faire des erreurs :)

J'ai trouvé que, pour être une solution intéressante pour être en mesure de résoudre les problèmes de l'e-mail qui ont déjà été envoyées!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X