同级iframe间的函数调用
?
好久没做记录,现在想通了,决定离开现在实习的公司,去找工作!俗话说“大四不考研,天天像过年!”我现在就是这样!哈哈哈哈,不过,貌似现在已经没什么大公司来学校招人了,但愿能找到好工作吧,很多同学都找到了好工作,真羡慕,不能再错过机会了,我要抓住机会!
以后把之前做项目遇到的问题都补回来,积累很重要!工作不是一辈子的事,积累才是一辈子的事!
?
这个是自己想的,不知道有不有其他更好的方法,欢迎各位指教!不用谢!
?
一个父页面下的两个iframe之间的调用。假设一个页面需要完成这样的功能,查询页面分为上下两部分,上面部分是选择查询的一个范围,下面部分就是显示选择结果可以进行的操作。上面部分的选择不同影响下面部分显示的不同。
?
var frames=window.parent.window.document.getElementById("bottom"); frames.contentWindow.test(); ?
?
?首先获取需要的iframe,然后再调用该iframe的函数。
?
?
?
?
?
?
首先是父页面jsp代码,里面定义了2个iframe框,分为上下部分,上面部分就是我们需要做判断的,下面部分就是我们判断后的结果。
?
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>数据初始化</title><link rel="stylesheet" type="text/css" href="css/style.css"></head><frameset rows="90,*" frameborder="0" border="0" framespacing="0"><frame src="dataIni.do?method=showHead" frameborder="0" name="head" id="head" noresize><frame src="dataIni.do?method=showBottom&searchTable=1" frameborder="0" name="bottom" id="bottom" noresize></frameset></html>
?
?
?
定义好父页面后,就贴上两个ifame的代码:
两个部分的调用过程:首先对head操作,head通过selectTable这个值的变化就会调用bottom的一个函数来控制bottom的显示,而bottom又需要获得head的一个参数,于是bottom就调用head的一个函数获取参数。最后对获取的参数判断做出结论。
?
head代码:
?
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>iframe同级间的调用</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="Update"><script language="JavaScript">function headTest(){var selectTable=document.getElementById("selectTable").value;return selectTable;}function test(){var frames=window.parent.window.document.getElementById("bottom"); frames.contentWindow.test(); }</script></head><body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"><table width="98%" border="0" cellspacing="3" cellpadding="0"><tr><td valign="bottom" border="0" align="center" cellpadding="0"cellspacing="0"><tr><td name="selectTable" HEIGHT="10px" onchange="test()"><option value=1>当前</option><option value=2>历史</option></select> </td></tr> </table></body></html>?
?
??
bottom代码:
?
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>iframe同级间的调用</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="Update"><script language="JavaScript">function test(){var frames=window.parent.window.document.getElementById("head"); var selectTable=frames.contentWindow.headTest(); if(selectTable==1){document.all.testSelect.disabled="";}else{document.all.testSelect.disabled="disabled";}}</script></head><body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"><table width="98%" border="0" cellspacing="3" cellpadding="0"><tr><td valign="bottom" border="0" align="center" cellpadding="0"cellspacing="0"><tr><td align="center"><input id="testSelect" name="testSelect" type="button" value="调用演示"></td></tr></table></body></html>?
?
?
不知道上面的叙述能不能看明白,我在描述一下。
(1) head的selectTable值的改变调用自身test()函数。
(2) head的test()函数调用bottom的test()。
(3) bottom的test()函数调用head的headTest()函数。
(4)?head的headTest()函数获取自身页面的selectTable的值并返回该值。
(5) bottom的test()函数获取调用headTest()返回的值。
(6) bottom的test()函数对获取的值做判断,并改变显示的效果。
?
恩!这样很清楚了!语言表达能力不好,还请多多指教。
?
我上传了一个工程,该工程下载后可以直接用tomcat发布、运行。该工程包括3个页面,上述提到的3个页面。下面是效果。
?
?

?
没了,再见!
?
?
?
?
?
?