如何使用JavaScript获取远程页面的内容?

时间:2009-08-20 08:04:56

标签: javascript get webpage

我有一个来自不同域的远程页面的URL,我必须下载,解析和更新当前页面的DOM。我已经找到使用新ActiveXObject(“Msxml2.XMLHTTP”)执行此操作的示例,但我认为这仅限于IE,并使用 new java.net.URL ,但我不想使用Java。还有其他选择吗?

6 个答案:

答案 0 :(得分:3)

相同的域名政策将帮助您。

1)通过您的服务器代理。 browser->您的服务器 - >他们的服务器 - >您的服务器 - >浏览器。

2)使用闪光灯或银光。第三方必须为您提供访问权限。 javascript和flash之间的桥梁不适合大量数据,并且存在错误。 Silverlight并不像flash那样无处不在......

3)使用标签。这真的不安全......只有在第三方内容有效的javascript时才有效。

答案 1 :(得分:2)

关于通过AJAX加载PHP脚本的问题是file_get_contents()?这适用于不同的域。如果我理解正确的话。

答案 2 :(得分:1)

编写将为您检索页面内容的服务器端脚本是可行的方法。您可以使用XMLHttpRequest对象对该脚本进行AJAX调用,该脚本将为您提供所有html(?)。

不过,我建议不要这样做。我不确切地知道如何你信任其他网站,但原因存在相同的原始政策。你究竟想做什么?通常,有一种解决方法。

答案 3 :(得分:0)

我不认为你可以根据同一原产地政策的限制来做到这一点。两个域之间使用Iframe进行通信,我们也可以使用JS代码,但两个域都需要在其中进行通信代码。子框架可以联系祖父母框架(窗口)但不在此处。

因为你指的是其他一些网址都是togeather。

唯一的方法是使用服务器端代码访问其他域上的内容。

答案 4 :(得分:-1)

只需使用PHP:

<?php
$url = "http://www.domaintoretrieve.com";

ob_start();
include_once( $url );

$html = ob_get_contents();
ob_end_clean();

?>

$ html包含要根据需要进行操作的整个页面。

答案 5 :(得分:-2)

XMLHTTPRequest对象在大多数现代浏览器中都很常见,并且是AJAX Web应用程序的推动力。