У меня есть приложение, которое содержит iframe. Я могу изменить содержимое iframe, но не всю страницу, например:
<html><head></head>
<body>
<iframe>
<!-- my code -->
</iframe>
</body></html>
У меня есть требование, в котором мне нужно изменить содержимое iframe на другую страницу (возможно, в другом домене) и вернуться назад. В настоящее время я делаю это следующим образом: Первая страница (она находится внутри панели исполнения iframeApplications):
<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 executePanelApplications):
<script>
function leave(e) {
var iframe = parent.parent.document.getElementById("executionPanelApplications");
iframe.src = url;
};
</script>
Если оба сайта находятся на локальном хосте, это работает как шарм. К сожалению, если они находятся в разных доменах - вторая страница открывается в новом окне. Протестировано в т.е. 8. Как я уже сказал, я не могу изменить содержимое страницы, содержащей iframe. Я могу работать только внутри iframe. Мне нужно, чтобы это работало только в ie.
Есть идеи?