2009-08-20 86 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包含了整個頁面操作需要。

相關問題