2011-11-15 68 views
0

我有一個包含iframe的應用程序。我可以修改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> 

第二頁(應該是IFRAME executionPanelApplications內爲好):

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

如果這兩個網站都在本地主機,它的作用就像一個魅力。不幸的是,如果他們在不同的領域 - 第二頁在新窗口打開。在ie 8中測試過。正如我所說 - 我無法更改包含iframe的頁面內容。我只能在iframe中工作。我需要這個只在ie中工作。

任何想法?

+1

這就是爲什麼你應該避免難看的iFrame。這是一個已知的限制。 – OptimusCrime

回答

0

我不會使用iframe的,因爲有不同的安全限制(跨域通訊)

但我認爲,這可以幫助你:http://softwareas.com/cross-domain-communication-with-iframes

+0

那麼正如我所說我不能做太多的事情 - 第一頁是在iframe中。所有這些背後的技術都是Oracle BPM 10g。我想用不同的Web界面替換由BPM應用程序提供的頁面,這是相對無縫的。 –