1

我有一个名为 p1.jsp 的父 jsp。当我单击此 jsp 上的链接时,它会打开一个名为 iframe.jsp 的 iframe。现在 iframe.jsp 中有一个链接,单击该链接时必须在关闭 iframe 模态窗口后将用户导航到另一个 url,但该 url 必须在父会话上打开。这意味着 parent.jsp 将被 new.jsp 的内容替换。

我找出了这样的代码:

<script type="text/javascript">
function closeMyModal()
{
//Closing Iframe modal 
window.parent.parent.document.getElementById('ovr1').style.display = 'none';
window.parent.parent.document.getElementById('cnt1').style.display = 'none';
<%
String hamlistVal = request.getParameter("hamlistVal");
%>
//Open the new.jsp on the p1.jsp i.e. relace p1.jsp with new.jsp
window.location.href="<%=com.pack.href.getCamHref()%>&hamlistVal=<%=hamlistVal%>";

}
</script>   

我的 iframe 模式正在关闭,但它没有导航到 new.jsp。我在这里做错了什么?请帮助。

4

3 回答 3

1

出于安全目的,您的 iFrame 将不被允许访问父框架。不允许使用导航功能。如果我没记错的话,iFrame 可以读取其父窗口的位置,但不能设置它。

这个 JavaScript 函数是在 iFrame 还是父窗口中?

于 2013-01-04T12:54:12.163 回答
1

好的,我得到了解决方案。

我只需要在 iframe.jsp 的 href 中提供完整的 url:

<a href = "<%=com.pack.href.getCamHref()%>&hamlistVal=<%=hamlistVal%>"/>

然后我需要将属性目标设置为“_parent”,如下所示:

<a href = "<%=com.pack.href.getCamHref()%>&hamlistVal=<%=hamlistVal%>" target="_parent"/>

这使 iframe 消失并在 p1.jsp 上打开 new.jsp。

希望这对其他人有帮助。

当我提到这个线程时,我得到了这个:Stack Thread

于 2013-01-04T13:03:53.597 回答
0

还有另一种方法可以实现这一点。当您从多个来源重定向到特定页面时,我的解决方案会更好。

就我而言,我只想确保此页面(这是我的登录页面)不会在 iframe 中打开。如果您想从定义的 url 执行此操作,还可以添加更多条件。

<script>
    if(window.self !== window.top)
        window.top.location.href = "<%=request.getContextPath()%>";
</script>
于 2019-12-08T08:43:11.897 回答