2012-12-21 70 views
1

我試圖將頁面加載到iframe中。當該頁面被加載時,我希望編輯已加載文檔中「pre」標籤的內容。加載的文檔來自另一個域。我正在使用:resultframe是iframe在iframe中訪問「pre」標籤加載不同域中的頁面

var atag= document.getElementById("resultframe").contentWindow.document.getElementsByTagName('pre'); 
atag[0].innerHTML="done"; 

訪問該標記。

問題:似乎沒有這種說法的影響。我需要知道正確的語法,並且我可以訪問從不同域加載的頁面元素。我從網上獲得了語法以及它的一些變化。 請建議。

+0

你不能。 Javascript有一個跨域策略,它也適用於跨域內容的iFrame,所以你不能更改你在iframe中加載的其他站點。 – adeneo

回答

0

你不能。出於安全原因,瀏覽器具有跨域策略。

如果我將facebook頁面包含在iframe中,我可以獲取所有信息,因爲您始終連接到它?

3

儘管JavaScript受限於防止與另一個域進行交互的跨域策略,但只要您能忍受某些限制,就有一種潛在的解決方法。

通過使用PHP and it's cURL library你可以從任何地方搶頁面的內容(甚至是安全頁面或一個需要登錄的,只要你有憑據)。然後,您可以解析頁面,編輯您需要的內容,並將其顯示在您自己的網站中。儘管如此,意識到這一點很重要,這只是您自己的本地副本的頁面。你不會有實際改變頁面內容的奢侈。

另一種可能性,需要訪問您想要編輯的所有域名,將採用web service,它將接受PUT請求形式的編輯。您可以通過Web服務獲得更多,但它必須在您希望進行更改的所有目標域上都可用。

在不久的將來,XMLHttpRequest Level 2可能會成爲現實,並將帶來跨源資源共享(CORS)與它。 CORS將允許一個域上的Web應用程序向另一個域發出跨域AJAX請求。目標域名將會有一個標題,明確允許來自另一個域名的請求。這可能會用於將編輯發送到其他網站。

相關問題