同级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" class="title">上面</td>
			</tr>
		</table>
		<table width="95%" border="0" align="center" cellpadding="0"
				cellspacing="0">
			<tr>
				<td class="td_page">查询范围 
			         <select id="selectTable" 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" class="title">下面</td>
		</tr>
	</table>

		<table width="95%" 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个页面。下面是效果。

 

 

 

没了,再见!

 

 

 

 

 

 

你可能感兴趣的:(JavaScript,html,tomcat,css,cache)