0

iframe を含むアプリケーションがあります。iframe のコンテンツは変更できますが、ページ全体は変更できません。たとえば、次のようになります。

<html><head></head>
<body> 
    <iframe>
        <!-- my code -->
    </iframe>
</body></html>

iframe のコンテンツを別のページ (おそらく別のドメイン) に変更して戻る必要があるという要件があります。現在、私は次のようにしています: 最初のページ (iframe executionPanelApplications 内にあります):

<html> 
 <head>
    <script type="text/javascript">
function replaceIFrameUrl() {
    var doSubmit = "<c:out value='${param.doSubmit}'/>";
    if (doSubmit == 1) {
        document.forms['testForm'].submit();
    }
    else {
        var adfUrl = "<fuego:fieldValue att='instJs.adfUrl' onlyValue='true'/>";
        var bpmSrc = parent.document.getElementById('executionPanelApplications').src;
        var bpmSrcParams = bpmSrc.split('&');
        var activityId = (bpmSrcParams[1].split('='))[1]; 
        var url = adfUrl +"&actionType=0&activityId="+activityId;
        parent.document.getElementById('executionPanelApplications').src = url;
    }
};

</script>
 </head>
 <body onload="replaceIFrameUrl();">
    <form method="post" id="testForm" name="testForm" />
 </body>
 </html>

2 番目のページ (iframe の executionPanelApplications 内にもある必要があります):

 <script>
   function leave(e) {
      var iframe = parent.parent.document.getElementById("executionPanelApplications");
      iframe.src = url;
   };
 </script>

両方のサイトが localhost にある場合、それは魅力のように機能します。残念ながら、それらが異なるドメインにある場合は、2 番目のページが新しいウィンドウで開かれます。すなわち8でテストされました。私が言ったように、iframeを含むページの内容を変更することはできません。iframe 内からしか作業できません。これは、つまりでのみ機能する必要があります。

何か案は?

4

1 に答える 1

0

さまざまなセキュリティ制限があるため、iframeは使用しません(ドメイン間通信)

しかし、私はこれがあなたを助けることができると思います:http ://softwareas.com/cross-domain-communication-with-iframes

于 2011-11-15T09:54:39.483 に答える