我有一个包含 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>
如果两个站点都在本地主机中,它就像一个魅力。不幸的是,如果它们位于不同的域中 - 第二页将在新窗口中打开。在 ie 8 中测试。正如我所说 - 我无法更改包含 iframe 的页面的内容。我只能在 iframe 内部工作。我需要这个只在ie中工作。
有任何想法吗?