加载网站到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>