it-swarm.com.de

Externe Seite ohne Iframe einbetten?

Gibt es eine Möglichkeit, eine externe Webseite ohne Verwendung eines Iframes einzubetten? Ich habe Zugriff auf beide Websites. Ich möchte nur, dass die Größe der Seite, auf der der Inhalt eingebettet ist, basierend auf dem eingebetteten Inhalt geändert wird (dies ändert sich im Laufe der Zeit und erfolgt auf mehreren Websites).

Vielen Dank!

BEARBEITEN: Ich glaube nicht, dass irgendeine Art von AJAX) funktionieren würde, da es sich um eine Cross-Site handelt und Sie mit JavaScript keine Off-Site-Inhalte laden können (soweit ich weiß).

51
JacobTheDev

Sie könnten die externe Seite mit jquery laden:

 <script> $ ("#testLoad") .load ("http://www.somesite.com/somepage.html"); </ script> 
 <div id = "testLoad "> </ div> 
 // würde dies helfen 
41

Oder Sie könnten das Objekt-Tag verwenden:

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]-->
32
ptriek

Die Frage ist gut, aber die Antwort lautet: Es kommt darauf an.

Wenn die andere Webseite kein Formular oder keinen Text enthält, können Sie beispielsweise die CURL-Methode verwenden, um den genauen Inhalt zu ermitteln und anschließend auf Ihrer Seite anzuzeigen. Sie können es tun, ohne einen Iframe zu verwenden.

Wenn die Seite, die Sie einbetten möchten, beispielsweise ein Formular enthält, funktioniert dies jedoch nicht ordnungsgemäß, da sich die Formularverarbeitung auf dieser Site befindet.

2
tildy

Was ist mit so etwas?

<?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) ); }
?>
2
talbottsw

Warum nicht PHP benutzen? Es ist alles Server-Seite:

<?php print file_get_contents("http://foo.com")?>

Wenn Sie beide Sites besitzen, müssen Sie diese Transaktion möglicherweise mit vollständiger Deklaration der Header auf der Serverseite abschließen. Funktioniert wunderbar.

1
martar

Mit HTML-Importen, die Teil der Umwandlung von Web Components sind, können HTML-Dokumente auch in andere HTML-Dokumente eingeschlossen werden. Siehe http://www.html5rocks.com/en/tutorials/webcomponents/imports/

1
lafeber