加载网站到DIV

当我在一个文本框中写入URL然后点击提交button时,如何从网站实际检索数据。 我想把数据放在我有的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> 

由于在JavaScript调用的沙箱,你不能这样做(你不能调用外部的JS从加载),至less不是直接

有2种方法。

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

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

鉴于它不能够做login或http身份validation(为了使您可以使用curl或另一个http客户端),这个PHP一个class轮可以用作从其他网站加载内容的代理

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

假设你将proxy.php放在html页面的同一目录下:

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

url与网页本身位于同一网域吗? 出于安全原因,大多数浏览器不允许跨站点AJAX请求。 有关为什么参阅链接文字的更多信息

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

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

我的URL ID是一个input文本,非常好的技巧

1.在你的服务器上创build一个文件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>