2011-11-15 17 views
0

私はiframeを含むアプリケーションを持っています。クロスドメインiframe srcの変更

<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番目のページが新しいウィンドウで開きます。私は言ったように - 私はiframeを含むページの内容を変更することはできません。私はiframeの内側からしか作業できません。私はこれだけで動作する必要があります。

アイデア?

+1

あなたは醜いiFrameを避けなければならない理由です。これは既知の制限です。 – OptimusCrime

答えて

0

異なるセキュリティ制限(クロスドメイン通信)があるので、私は、

をアイフレームを使用していないだろう。しかし、私が思うに、これはあなたを助けることができる:http://softwareas.com/cross-domain-communication-with-iframes

+0

まあ、私はそれについて多くをすることはできません - 最初のページはiframeにあります。このすべての背後にあるテクノロジーは、Oracle BPM 10gです。 BPMアプリケーションによって提供されるページを、比較的シームレスな別のWebインターフェイスに置き換えたいと思います。 –

関連する問題