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