Вставить внешнюю страницу без IFRAME?

Есть ли способ встраивать внешнюю веб-страницу без использования iframe? У меня есть доступ к обоим сайтам, я просто хочу, чтобы страница была встроена для изменения размера на основе встроенного контента (он будет меняться со временем и находиться на нескольких сайтах).

Спасибо!

EDIT: Я не думаю, что какой-либо AJAX будет работать, потому что это кросс-сайт, а JavaScript не позволяет загружать контент вне сайта (насколько мне известно).

Ответ 1

Вы можете загрузить внешнюю страницу с помощью jquery:

<script>$("#testLoad").load("http://www.somesite.com/somepage.html");</script>
<div id="testLoad"></div>
//would this help

Ответ 2

Или вы можете использовать тег объекта:

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

Ответ 3

Вопрос хороший, но ответ: это зависит от этого.

Если другая веб-страница не содержит никакой формы или текста, например, вы можете использовать метод CURL для получения точного содержимого и после этого показывать на своей странице. Вы можете сделать это, не используя iframe.

Но если страница, которую вы хотите внедрить, содержит, например, форму, она не будет работать правильно, потому что обработка формы находится на этом сайте.

Ответ 4

Как насчет этого?

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

Ответ 5

Почему бы не использовать PHP! Все серверные части:

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

Если у вас есть оба сайта, вам может потребоваться одобрить эту транзакцию с полным объявлением заголовков на сервере. Прекрасно работает.