2012-05-27 86 views
1

有一個iFrame包含整個文檔(<html> to </html>)。本文檔還包含一些script標籤。我的問題是,我們可以調用iFrame中存在的腳本的功能嗎?與iFrame內容通信

+2

並且是同一個域上的iframe源代碼? – Joseph

+0

是的,它是在相同的域 – gaurav

+3

我不知道你,但[你是如何錯過這些從搜索?](http://stackoverflow.com/search?q=iframe+communication) – Joseph

回答

1

如果iframe導航相同的域,那麼你可以使用這樣的事情:

var result = document.getElementById("frame").contentWindow.func(args); 
console.log(result); 

DEMO:http://jsfiddle.net/Mnt3e/

0

您可以通過contentDocument屬性訪問iframe的內容,但前提是它屬於同一個域。

+0

在這種情況下,你我們需要'contentWindow'屬性來調用內部iframe的功能。 'theIframeNode.contentWindow.foobar()'應該有希望在iframe中調用全局'foobar'函數。 –

+0

他想通過調用函數進行通信。 –

+0

@JonathanProtzenko感謝它的工作 – gaurav

0

如果幀來自不同的領域,並有在源代碼控制, 您可以使用postMessage在幀/文檔之間進行通信。

對於瀏覽器支持,有一些信息here,我們確實有一個jquery plugin與不支持postMessage的瀏覽器的回退。