如何从iframe重定向到另一个网址并在iframe的父网址上打开?

时间:2013-01-04 12:43:35

标签: javascript jsp scriplets

我有一个名为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。 我在这做错了什么?请帮助。

3 个答案:

答案 0 :(得分:1)

出于安全考虑,不允许您的iFrame访问父框架。不允许导航功能。如果我没弄错,iFrame可以读取其父窗口的位置,但不能设置它。

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

答案 1 :(得分:1)

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

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

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

然后我需要将属性目标设置为&#34; _parent&#34;像这样:

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

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

希望这有助于其他人。

当我提到这个帖子时,我得到了这个:Stack Thread

答案 2 :(得分:0)

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

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

<script>
    if(window.self !== window.top)
        window.top.location.href = "<%=request.getContextPath()%>";
</script>