2013-01-16 101 views
0

我想實現下面的目標。我希望通過點擊一個按鈕來獲取在一個輸入中輸入的域名並將其加載到iframe中。我有什麼麻煩是我在加載iframe中的特定網站後,我怎麼能在iframe中獲取加載網站的DOM?我需要通過單擊它從iframe中新加載的站點保存我選擇的元素的確切路徑。任何幫助將非常感激。謝謝。獲取iframe加載後的內容

回答

1

您可以通過contentDocument屬性訪問的內容。

var iFrameContent = $('myIFrame')[0].contentDocument; 
$(iFrameContent).find('.mySelector').text(); 

我還要指出,如果訪問該的src是來自同一個域作爲腳本的的內容只能做。如果的src來自任何其他域,則瀏覽器將拒絕訪問內容。

這是CORS的考慮因素。

UPDATE:

要解決的CORS限制,你必須寫這就是的src的URL的服務器端代理(它可能是很簡單)。

如果我做在ASP.Net是這樣的(作爲一個例子),我會寫一個Web服務:

  1. 採取實際的URL作爲String參數。
  2. 使用HTTPWebRequest對象(或類似的)來獲取URL內容。
  3. 將其返回到瀏覽器。

然後,你可以設置你的 src爲「http://mysite.com/getURLService?url=www.lalala.com」而獲得的內容,因爲內容是現在「http://mysite.com」交付。

+0

呃......這就是問題所在,它不是用相同的域名,我在域名上做這件事,我在iframe中加載了另一個站點......比如www.lalala.com,我想獲取它的DOM,不是我的......有沒有可能發生的事情? –

+0

@LachezarRaychev:更新回答。 – pete

0

您使用.contents()

like $("iframe").contents().find();

+0

爲了記錄您可以使用contents()來獲取iframe的內容。它在jQuery文檔中是這樣說的,而且我自己多次完成它。 –