2012-08-29 108 views
1

這個問題似乎只發生在鉻 這是iframe的代碼訪問IFRAME功能

<!DOCTYPE html> 
<html> 
<head> 
    <script> 
    function blahblah() { alert("test"); } 
    </script> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <title>Test Page</title> 
</head> 
<body> 

    <p> lalalalallalala!!! </p> 

</body> 
</html> 

這是我創建的iframe

<iframe src="iframetest.html" id="iframetest"></iframe> 

然後我打電話iframe的blahblah( )功能:

$('#iframetest')[0].contentWindow.blahblah() 

但是這不起作用

+0

你有沒有嘗試過'$( '#iframetest')contentWindow.blahblah()'? (注意,缺少'[0]') – freefaller

+0

你什麼時候調用函數?你確定iframe已經被加載了嗎? –

+0

它的加載,因爲我可以通過鉻的控制檯看到它 我沒有嘗試[0] – user1307863

回答

2

這工作:我用$(window).load確保了iframe

<iframe id=iframetest src=iframetest.html></iframe> 
    <script> 
     $(window).load(function(){ 
     document.getElementById('iframetest').contentWindow.blahblah(); 
     }); 
    </script> 

注意加載。在document上使用load將無法​​確保加載iframe。

當然,您的iframe必須具有與父文檔相同的來源(這也意味着您必須在瀏覽器中打開http://而不是file://)。

編輯:Working demo

+0

仍然不適合我在鉻上工作。 雖然它在IE上工作.. – user1307863

+0

我在Chrome上測試過它。你確定你使用$(window).load?兩個HTML文件是否都是相同的來源? –

+0

請注意,您必須在http://中打開文件,而不是文件:// –