将HTML Frame src设置为google.com;不工作

时间:2012-04-30 21:35:32

标签: php html google-chrome

我有以下php代码:

<?php
require_once("support.php");

$query = $_POST["search"];

$google = "http://www.google.com/search?q=" . $query;
$bing = "http://www.bing.com/search?q=" . $query;
$yahoo ="http://search.yahoo.com/search?p=" . $query;
$ask = "http://www.ask.com/web?q=" . $query;

$body= "<html><head>";
$body .= "<script src=\"scripts.js\"></script>";
$body .= "</head>";
$body .= "<frameset rows=\"50%,50%\" cols=\"50%,50%\" >";
$body .= "<frame src=\"$google\" />";
$body .= "<frame src=\"$bing\" />";
$body .= "<frame src=\"$yahoo\" />";
$body .= "<frame src=\"$ask\" />";
$body .= "</frameset>";

$body .= "</html>";

echo $body;
?>

产生以下html:

<html>
  <head>
      <script src="scripts.js"></script>
  </head>
  <frameset rows="50%,50%" cols="50%,50%" >
       <frame src="http://www.google.com/search?q=adf" />
       <frame src="http://www.bing.com/search?q=adf" />
       <frame src="http://search.yahoo.com/search?p=adf" />
       <frame src="http://www.ask.com/web?q=adf" />
  </frameset>
</html>

当我在谷歌浏览器中打开它时,我从上面的网址获得了4帧预期内容。但在第一帧中,谁的src来自谷歌,我什么都没得到;只是一个空白的框架。 知道这里发生了什么吗?

由于

3 个答案:

答案 0 :(得分:4)

Google将X-Frame-Options标题设置为SAMEORIGIN,禁止非Google.com网站嵌入其网页。大多数现代浏览器都尊重这种设置。

答案 1 :(得分:0)

您可以将开发人员工具用作Chrome扩展程序。 Firebug也会做类似的工作。从您的网页按Ctrl + Shift + J,Chrome应弹出开发人员工具界面。

在此处,单击“控制台”,然后检查是否有任何错误消息。我记得使用Same-Origin x-frame选项遇到了类似的问题 - 但这是针对存在身份验证问题的GDocs。在我的案例中没有简单的解决方法,我使用了一个单独的选项卡。

此主题也可能有所帮助: How can I embed a Google Docs collection in an Iframe?

答案 2 :(得分:0)

您可以让服务器下载谷歌搜索结果页面,并使用curl将其提供给您的框架。

<?php 
function getHtml($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);    
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);  
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

$google = getHtml("https://encrypted.google.com/search?q=".$query) or die("dead!");
#....
?>