Загрузить сайт в DIV

как я могу получить данные с веб-сайта, когда я пишу URL-адрес в текстовом поле, а затем нажимаю кнопку отправки. Я хочу, чтобы данные были помещены в div, который у меня есть. Это возможно?

Я пробовал с этим, но это не работает!

<script type="text/javascript"> 
function contentDisp()
{
var url = $("#text").val();
$("#contentArea").load(url);
}
</script> 



<textarea id="text">Write URL here</textarea>
<br />
<input type="button" value="Click" onClick="contentDisp();">

<div id="contentArea"></div>

person Community    schedule 06.08.2009    source источник


Ответы (5)


Из-за песочницы при вызовах javascript вы не можете этого сделать (вы не можете звонить вне домена, из которого был загружен JS), по крайней мере, напрямую

Есть 2 метода вокруг этого.

Во-первых, нужно загрузить запрошенный URL-адрес в iframe, а не в div, установив параметр src с помощью JS. Просто, легко, но ограничит ваш доступ к данным в iframe.

Во-вторых, сделать запрос AJAX на вашем сервере, а затем ваш сервер просматривает URL-адрес и возвращает содержимое HTML (довольно легко сделать с помощью CURL или аналогичного). Это позволяет вам немного больше поиграть с возвращенным содержимым, но опять же из-за песочницы в файлах cookie вы не сможете запросить что-либо вроде страницы Facebook пользователя или чего-либо, что требует сеанса, поскольку он будет работать через сеанс сервера. а не сеанс браузера.

person workmad3    schedule 06.08.2009

Учитывая, что он не сможет выполнять вход или HTTP-аутентификацию (для включения этого вы можете использовать curl или другой http-клиент), этот php one liner можно использовать в качестве прокси для загрузки контента с других сайтов.

/* proxy.php */
<?php echo file_get_contents($_GET['url']);?>

чем, если вы поместите proxy.php в тот же каталог html-страницы:

$("#contentArea").load('proxy.php?url=http://example.com');
person Andrea Fiore    schedule 06.08.2009

URL находится в том же домене, что и сама страница? Из соображений безопасности большинство браузеров не разрешают межсайтовые AJAX-запросы. Дополнительную информацию о том, почему см. текст ссылки

person mishac    schedule 06.08.2009

Это верно, браузеры не разрешают AJAX-запросы к другим доменным сайтам, у меня была такая же проблема, и я воспользовался советом workmad3, примерно так:

$(document).ready(function(){
     $('#url').change(function(){
          var _url=$(this).val();
          $('#webDisplay').attr('src',_url);
     });
});

где мой идентификатор URL-адреса является текстом INPUT, очень хороший трюк

person Ivan    schedule 09.07.2010

1.Создайте файл load.php на своем сервере.

<?php echo file_get_contents($_GET['u']); ?>

2.в index.html .

<script type="text/javascript"> 
function contentDisp()
{
  var url = $("#text").val();
  $("#contentArea").load('load.php?u='+url);
}
</script> 
person Ana El Bembo    schedule 14.08.2014