将网站加载到DIV

时间:2009-08-06 08:52:11

标签: jquery load

当我在文本框中写入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>

5 个答案:

答案 0 :(得分:11)

由于javascript调用上的沙箱,你不能这样做(你不能在JS加载的域之外调用),至少不能直接

这有两种方法。

第一种方法是通过使用JS设置src参数,将请求的URL加载到iframe而不是div中。简单,容易,但会限制您访问iframe中的数据。

第二个是在您的服务器上发出一个AJAX请求,然后您的服务器查找URL并返回HTML内容(很容易用CURL或类似方法)。这使您可以更多地使用返回的内容,但是由于cookie上的沙箱,您将无法请求任何类似用户的Facebook页面或需要会话的任何内容,因为它将通过服务器会话而不是浏览器会话。

答案 1 :(得分:7)

鉴于它无法进行登录或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');

答案 2 :(得分:1)

网址与网页本身在同一个域中吗?出于安全原因,大多数浏览器不允许跨站点AJAX请求。有关原因的详细信息,请参阅link text

答案 3 :(得分:0)

这是正确的,浏览器不允许AJAX请求到其他域名网站,我遇到了同样的问题,并做了workmad3的提示,如下所示:

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

我的网址ID是INPUT文本,非常好的技巧

答案 4 :(得分:0)

1.在您的服务器中生成 load.php 文件。

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

2.in index.html

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