外部网页的HTML源代码为字符串

时间:2013-02-08 18:57:58

标签: javascript html ajax

我网站上的用户将在textbox中输入网址(另一个网域上的公开网页)。我想以字符串形式获取页面的HTML源代码。如何使用客户端脚本执行此操作?

以下是我加载网址的方法。但无法弄清楚如何获取html。

<!DOCTYPE html>
<head>
<script>
function myFunction()
{
document.getElementById("site").src=document.getElementById("web").value;
}
</script>
</head>
<body> 
<input id="web" type="text" name="user">
<input type="submit" value="Submit"  onclick="myFunction()"> <br/>
<iframe id="site" src="" width="1200" height="1200"></iframe>

</body>
</html>

2 个答案:

答案 0 :(得分:3)

在您的服务器上创建一个脚本,并使用AJAX调用它,然后像这样使用cURL

 $ch = curl_init();
 $timeout = 10;
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

 $data = curl_exec($ch);

 curl_close($ch);

$data将包含内容。

答案 1 :(得分:2)

由于Same Origin Policy,我担心您网站上的javascript无法访问其他网站的源代码。这是为了防止Cross Site Scripting攻击。例如,如果用户已登录其电子邮件帐户,则同源策略会阻止在同一浏览器中打开的其他网站尝试访问您的电子邮件。

你最好的选择是:

  • 通过AJAX将URL发送到您的应用程序服务器
  • 从您的应用程序服务器(在Java / PHP等中)执行HTTP GET
  • 使用其他网站的文字回复AJAX请求
  • 然后向您的用户显示源代码