在jsp页面中管理<iframe> </iframe>

时间:2013-12-11 15:03:27

标签: javascript html jsp iframe coffeescript

我有一个有四个链接的导航栏,点击任意链接,相应的页面在导航栏下面的框架中打开,但是当我使用右键单击打开新选项卡时,我想要打开整个页面,即打开一个特定的链接不应允许单独使用新标签

链接应仅在框架中打开或显示,而不是单独显示。可以这样做吗?

 <a href="page1.jsp" target="frame1">page1</a>
 <a href="page2.jsp" target="frame1">page2</a>
 <iframe name="frame1" src="page3.jsp">

右键单击链接并在新窗口中打开应该再次启动整个应用程序。

1 个答案:

答案 0 :(得分:0)

每个只应在iframe中显示的页面(page1.jsp,page2.jsp和page3.jsp)应包含JS,以检测它是否在自己的窗口中显示。例如,如果包含iframe的页面是index.jsp,则page1.jsp应包含以下代码:

<script type="text/javascript">
<!--
if (top.location.href == self.location.href)
  // Redirect user to main page, passing current page name:
  top.location.href = 'index.jsp?frame=page1';
//-->
</script>

然后,在index.jsp中你应该使你的iframe的src加载指定的帧源:

<% 
// Establish default source:
String frame_src = 'page3.jsp';
// Establish controlled list of pages to show in the iframe (important to be restrictive)
String[] allowed_srcs = ['page1','page2','page3'];
// Get targeted frame from query string, if given:
String targeted_frame = request.getParameter('frame');
if(Arrays.asList(allowed_srcs).contains(targeted_frame))
  frame_src = targeted_frame + '.jsp';
%>
<iframe name="frame1" src="<%= frame_src %>"></iframe>