像谷歌搜索一样在div中加载外部网址

时间:2012-03-26 05:51:05

标签: php javascript jquery html ajax

我想在div中加载外部网站,并使其更小,以更恰当地容纳div内部 就像谷歌搜索一样


我试过了:

$("#targetDiv").load("www.google.com");

但它不起作用。

我尝试了iframe,但它仍有2个问题:

  1. 按箭头键仍可启用滚动功能。 PGUP PGDOWN
  2. 如何使内部iframe内容更小

  3. 不知道我应该使用哪种方法 这是更优化的 或任何其他选择?

3 个答案:

答案 0 :(得分:3)

你想做的事情是行不通的。遗憾的是,出于安全原因,不允许JavaScript发出跨域请求(参考:http://en.wikipedia.org/wiki/Same%5Forigin%5Fpolicy)。

如果你创建一个用PHP编写的脚本驻留在提交请求的你自己的服务器上,那可能会有效,但是用户没有有效的会话,并且存在来自另一个站点的URL(链接)的风险如果他们是相对的,那就行不通。

示例:

$('#targetDiv').load('load.php?url=www.google.com')

您还可以查看jquery-crossframe。我从来没有使用它,但它声称要做你正在寻找的东西。

最好的选择是使用iframe元素。

答案 1 :(得分:1)

您无法使用jquery加载跨域ajax调用。来自http://api.jquery.com/load/

  

附加说明:   由于浏览器安全限制,大多数“Ajax”请求都遵循相同的原始策略;请求无法成功从其他域,子域或协议中检索数据。

如果iframe不是一个选项,你可以使用curl通过ajax调用php页面来检索数据。

答案 2 :(得分:1)

弗朗索瓦是正确的,因为您的ajax请求仅限于同一原始政策。这意味着您无法直接从其他网站加载内容。但是,如果您的来源支持JSONP,您可以实现的目标是什么。如果您想专门加载Google搜索引擎结果,请查看Google Custom Search API