跨域iframe src更改

时间:2011-11-15 09:46:40

标签: javascript iframe cross-domain oracle-adf bpm

我有一个包含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>

第二页(它应该在iframe executionPanelApplications中):

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

如果两个网站都在localhost中,它就像一个魅力。不幸的是,如果他们在不同的域中 - 第二页在新窗口中打开。测试ie 8.正如我所说 - 我无法更改包含iframe的页面的内容。我只能在iframe内部工作。我需要这个才能在ie。

中工作

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我不会使用iframe,因为存在不同的安全限制(跨域通信)

但我认为,这个可以帮到你:http://softwareas.com/cross-domain-communication-with-iframes