2009-08-20 109 views
5

我有一个远程文件从不同的域,我有下载,分析,并更新当前页面的DOM的URL。我发现这样做的例子使用新的ActiveXObject(“Msxml2.XMLHTTP”),但这仅限于IE浏览器,我猜,并使用新的java.net.URL,但我不想使用Java 。有没有其他的选择?如何使用JavaScript获取远程页面的内容?

+0

你有控制其他域吗? – 2009-08-20 08:13:09

+0

@Darko Z无,我不 – Vitaly 2009-08-20 08:20:47

回答

3

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

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

2)使用flash或silverlight。第三方必须为您提供访问权限。 javascript和flash之间的桥梁对于大量数据并不好,并且存在错误。 Silverlight并非像闪存一样无处不在...

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

+0

书签在本地运行会受到相同的限制吗? – 2014-06-27 17:04:03

-1

XMLHTTPRequest对象是常见的大多数流行的浏览器,是什么力量AJAX的Web应用程序。

+0

他在不同的域名称... – 2009-08-20 08:11:38

+0

如果他们创建一个标准的有可能是www.datejs.comhe仍然可以使用AJAX这个...虽然我不会推荐它... – 2009-08-20 08:19:28

2

请告诉我有关负载通过AJAX的PHP脚本,做file_get_contents()?这应该适用于不同的域。如果我理解正确。

+0

这基本上是史蒂夫布鲁尔建议的。但是,如果可能的话,我宁愿避免使用代理。 – Vitaly 2009-08-20 08:30:01

1

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

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

+0

相同的来源策略是安全的做法。 其他网站有API? – 2009-08-20 08:32:49

+0

Google Finance API没有提供获取股票报价的方法,但正如此处所述http://stackoverflow.com/questions/527703/google-financial-api-how-get-stock-quotes有一种方法可以获取引用像这样:http://finance.google。com/finance/info?q = GOOG – Vitaly 2009-08-20 08:38:48

+0

那么,您是否试图从Google财经中检索股票报价?它有助于澄清到底是什么,你正试图实现:-) – JorenB 2009-08-20 08:47:31

0

我不认为你可以根据同源策略的约束来做到这一点。两个域之间使用Iframe进行通信,我们也可以使用JS代码,但是这两个域需要在其中进行通信代码。子框架可以联系祖父母框架(窗口),但不在这里。

既然你指的是其他一些URL所有togeather。

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

0

只需使用PHP:

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

ob_start(); 
include_once($url); 

$html = ob_get_contents(); 
ob_end_clean(); 

?> 

$ HTML包含了整个页面操作需要。

相关问题