2017-04-05 30 views
1

私は2つのhtmlファイルを持っています。iFrameからJavascript関数を呼び出す方法は?

1.htmlはiframeから2.htmlを呼び出します。

<iframe src="2.html" > </iframe> 

2.html 2つのjavascript関数が定義されています。

function func1(a, b, c) { 
    for() { 
    ..... 
    } 
} 

function func2() { 
func1(a, b, c); 
} 

HTML

<body onload="func2()"> 

は今、私の質問は、私は1つのhtmlにこれら2 htmlファイルをマージする必要があります。 2.htmlはiframe内で実行する必要があります。

私がすることによって実行しようとしました、

<!DOCTYPE html> 
<html> 

    <body> 
    <iframe id="foo" onload="myFunction()" /> </iframe> 
    <script> 
     function myFunction() { 
     var iframe = document.getElementById('foo'), 
      iframedoc = iframe.contentDocument || iframe.contentWindow.document; 
     iframedoc.body.innerHTML = func2(); 
     } 

    </script> 
    </body> 

</html> 

しかし、関数func2()が呼び出されていません。誰もがiframeの内部でJavaScript関数を呼び出す方法を提案できますか?

ありがとうございます。

答えて

2

CSP(コンテンツセキュリティポリシー)のため、iframeからそのような関数を呼び出すことはできません。 iframeの外側でcomunicateする唯一の方法は、メッセージを渡すことです。説明についてはhttps://developer.mozilla.org/en-US/docs/Web/API/Window/postMessageを参照してください。

関連する問題