2009-10-04 66 views
1

只是一個人擡頭我是一個JavaScript的半小菜鳥。從父母處執行iFrame中的Javascript

因此,在過去的兩天裏,我一直在谷歌和我的生活,我無法弄清楚如何從父頁面執行iframe中的功能。 iframe中的頁面位於不同的域中,要執行的代碼通常通過鏈接執行,但我希望在沒有用戶單擊鏈接的情況下執行。

我希望這是有道理的。如果你們想看看我到目前爲止只是讓我知道,但我不認爲這會有很大幫助,因爲它根本不起作用。

+0

如果您只是在iframe中再次加載javascript,該怎麼辦?還是原來的JavaScript比這更復雜? – 2009-10-04 16:15:51

+0

和再次相同的問題:http://stackoverflow.com/tw/sea​​rch?q=javascript+iframe+parent – Peter 2009-10-04 20:03:14

回答

4

由於大多數瀏覽器的安全限制(絕對爲Mozilla),AFAIK,您的can not execute JavaScript來自另一個域中的另一個域。

我聽說過有關與Yahoo! Pipes有關的一種方法的傳聞,但必須cofess,我從來沒有調查過,所以不知道是否是這種情況。

只需谷歌的「相同來源的政策解決方法」,看看是否有任何解決方案列出服務於您的目的。

+0

我可以通過在網址欄中輸入腳本來執行腳本,而我可以查看頁面,我可以做類似的事情一個iframe?感謝管道的事情,我會研究它。 – 2009-10-04 16:02:51

+1

否 - 因爲當您在地址欄中輸入時,您的安全權限是本地的,而從fram執行的JS具有與網頁源於的域相關聯的權限。 您可以CONSIEVABLY做的一件事是讀取IFRAME的全部內容,將IFRAME的位置更改爲您自己域中的URL,並將HTML + JS的內容寫回該IFRAME。這隻有在JS被嵌入並且頁面中沒有相對域URL時纔有效。 – DVK 2009-10-04 16:20:30

+0

我已經經歷過,但頁面中包含很多PHP也是需要的,因此它是不可能的。我想我只是要讓iframe滾動到他們需要點擊的地方,它應該可以很好地工作。 非常感謝您的幫助,如果不適合您,我可能仍會嘗試做一些不可能的事情。 – 2009-10-04 16:33:07

0

https://developer.mozilla.org/en/Same_origin_policy_for_JavaScript描述了一種調整具有限制的頁面的域的方式。

對於相同的 原始規則有一個例外。腳本可以將document.domain的 值設置爲當前域的後綴 。如果是這樣,則 較短的域用於後續的原點檢查。例如,假設 在 http://store.company.com/dir/other.html 文檔中的腳本執行以下語句:

有不模糊域邊界框架,如http://ajaxian.com/archives/crossframe-a-safe-communication-mechanism-across-documents-and-across-domains之間進行通信的其他方式。