2013-02-18 42 views
0

任何想法,頁面從iframe中的不同域中加載一個包含表格的頁面。我怎麼能得到該表..使用任何語言,HTML,JavaScript的,jQuery的,PHP等..jquery - 讀取不同域名的iframe表格數據

+0

你能在這裏舉一些例子嗎?小提琴?你有什麼嘗試? – 2013-02-18 05:50:15

+0

試了一下。將頁面加載到iframe中,然後當我想要獲取內容時,我得到了在螢火蟲中拒絕的錯誤。是否有任何解決方案。我想在我的頁面中獲取外部網頁的數據。該網頁中的數據僅在我執行該頁面中的提交操作後纔可用,所以我使用了iframe .. – 2013-02-18 05:55:32

+0

是否可以更改「外部網頁」,如果是這樣,您可以更改它以將數據發送回父頁面使用JavaScript。 – andho 2013-02-18 06:04:30

回答

0

編輯:

您可以在發佈與PHP的形式太后得到的數據。試試這個:

$post = http_build_query(
    array(
     'var1' => 'some content', 
     'var2' => 'doh' 
    ) 
); 

$opts = array('http' => 
    array(
     'method' => 'POST', 
     'header' => 'Content-type: application/x-www-form-urlencoded', 
     'content' => $post 
    ) 
); 

$context = stream_context_create($opts); 

$file = file_get_contents('http://example.com/submit.php', false, $context); 

$file現在包含對發佈數據的響應。現在通過我在下面說的simplehtmldom解析它。

很顯然,由於交叉來源的政策限制,它將不起作用。

如果您知道iframe的src,則可以通過CURLfile_get_contents獲取源代碼,然後通過DOM結構讀取以獲取所需的表格數據。

示例代碼:

$file = file_get_contents('IFRAME_URL_HERE'); 

一旦你得到了源代碼,你可以通過使用一個名爲SimpleHTMLDom http://simplehtmldom.sourceforge.net/庫非常容易地分析它

它可以讓你在需要的表中的數據像一行或兩行代碼。 (與jQuery非常相似的語法,只需用PHP編寫)。

如果你可以給iframe src和你想要的表數據,我可以給你一個工作示例。

希望它有幫助。

+0

該網頁中的數據僅在我執行該頁面中的提交操作後纔可用,所以我使用了iframe,此file_get_contents的Bcoz不會爲我工作。所以我該如何做到這一點。 – 2013-02-18 06:10:36

+0

@TechonTechnology查看我的編輯。 – 2013-02-18 06:15:52

+0

好的,據我所知,你給的鏈接是你提交一個數字的頁面,如果正確的話,在iframe中打開一個鏈接。我對嗎? – 2013-02-18 06:21:59

0

你可以得到它在PHP中使用CURL - 只是捲曲iframe加載的網址。這裏有一個簡單的指南,開始做這種事情(用PHP搞定)。

http://www.phpbuilder.com/columns/marc_plotz011410.php3

+0

該網頁中的數據只有在我執行該頁面中的提交操作後纔可用,所以我使用iframe ..我怎樣才能達到這個 – 2013-02-18 05:57:08

+0

您可以在curl中設置選項('curl_setopt')來POST數據。有甚至[一個很好的堆棧溢出答案](http://stackoverflow.com/questions/8775161/how-can-scrape-website-via-php-that-requires-post-data)。 – jingman 2013-02-18 06:05:49

+0

您也可以在PHP中使用CURL執行提交操作。提交HTML表單時,它將根據表單的「方法」屬性發送HTTP GET或POST請求。您也可以使用CURL發送相同的請求。 – andho 2013-02-18 06:06:55