关于父子窗口的参数传递(引用的高手的)

  1 None.gif 关于父,子窗口的传递参数的试验
  2 None.gif分析
  3 None.gif 1 .    用到showModalDialog和showModelessDialog 
  4 None.gif 2 .    试验代码如下
  5 None.gif < parent.aspx >
  6 None.gif  
  7 None.gif < body MS_POSITIONING = " GridLayout " >
  8 None.gif         < form id = " Form1 "  method = " post "  runat = " server " >
  9 None.gif             < INPUT style = " Z-INDEX: 101; LEFT: 112px; POSITION: absolute; TOP: 176px "  type = " text "  id = " Text1 "
 10 None.gif                name = " Text1 "  runat = " server " >< INPUT style = " Z-INDEX: 102; LEFT: 160px; POSITION: absolute; TOP: 240px "  type = " button "
 11 None.gif                value = " 打开子窗口 "  name = " test "  id = " Button1 "  onclick = " openwin1() "  runat = " server " >   < INPUT id = " Text2 "  style = " Z-INDEX: 103; LEFT: 336px; POSITION: absolute; TOP: 176px "  type = " text "
 12 None.gif                name = " Text2 "  runat = " server " >
 13 None.gif         </ form >
 14 None.gif         < script language = " javascript " >
 15 None.giffunction openwin1()
 16 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
 17InBlock.gifvar srcFile="child.aspx"//新窗口的文档名称 
 18InBlock.gif var winFeatures="dialogHeight:300px; dialogLeft:200px;"
 19InBlock.gifvar obj =Form1;//将form作为对象传递给新窗口 (注意传递的为表单对象 )  
 20InBlock.gif           window.showModelessDialog(srcFile,obj,winFeatures) //window.showModelessDialog(srcFile,obj,winFeatures)
 21ExpandedBlockEnd.gif}

 22 None.gif         </ script >
 23 None.gif     </ body >
 24 None.gif < child.spx >
 25 None.gif  
 26 None.gif </ HEAD >
 27 None.gif     < base  target = " _self " >   <!-- 这句话非常重要,只要加上才能保证在弹出窗口中调用服务端代码而不会再弹出一个新窗口 -->  
 28 None.gif < body MS_POSITIONING = " GridLayout " >
 29 None.gif < form id = " SendForm " >
 30 None.gif < FONT face = " 宋体 " >< INPUT id = " Text1 "  style = " Z-INDEX: 101; LEFT: 88px; POSITION: absolute; TOP: 176px "  type = " text "
 31 None.gifname = " Text1 "  runat = " server " >< INPUT id = " Text2 "  style = " Z-INDEX: 102; LEFT: 288px; POSITION: absolute; TOP: 176px "  type = " text "
 32 None.gifname = " Text2 "  runat = " server " ></ FONT >  
 33 None.gif < INPUT id = " Button1 "  style = " Z-INDEX: 103; LEFT: 272px; POSITION: absolute; TOP: 272px "  type = " button "
 34 None.gifvalue = " Button "  name = " Button1 "  runat = " server "  onclick = " send(SendForm.Text1.value,SendForm.Text2.value); " > // 对子窗体的按钮添加事件即点击的时候将两个文本框的内容传递到父文本框里面去
 35 None.gif </ form >
 36 None.gif < script language = " JavaScript " >     
 37 None.giffunction send(val,val1)    
 38 ExpandedBlockStart.gifContractedBlock.gif dot.gif {        
 39InBlock.gif    //取得父窗口传过来的对象  <生成父窗口的对象>      
 40InBlock.gif    var myObj = window.dialogArguments;        
 41InBlock.gif    //赋值 
 42InBlock.gif    myObj.Text1.value = val; //将文本框的内容复给父对象传过来的对象的对应的文本框1 其中的text1。text2 是在父窗口中声明的
 43InBlock.gif    myObj.Text2.value = val1; //将文本框的内容复给父对象传过来的对象的对应的文本框2
 44InBlock.gif    //关闭窗口        
 45InBlock.gif    window.close();    
 46ExpandedBlockEnd.gif}
 
 47 None.gif </ script >  
 48 None.gif </ body >
 49 None.gif < 3 > 总结 
 50 None.gif一、showModalDialog和showModelessDialog有什么不同?
 51 None.gif  showModalDialog:被打开后就会始终保持输入焦点。除非对话框被关闭,否则用户无法切换到主窗口。类似alert的运行效果。
 52 None.gifshowModelessDialog:被打开后,用户可以随机切换输入焦点。对主窗口没有任何影响(最多是被挡住一下而以。:P)
 53 None.gif2二、怎样才让在showModalDialog和showModelessDialog的超连接不弹出新窗口?
 54 None.gif  在被打开的网页里加上 < base  target = " _self " > 就可以了。这句话一般是放在和之间的。《. / head》 < base  target = " _self " >< body >
 55 None.gif 3     表单的提交为get方法
 56 None.gif 4     三、怎样才刷新showModalDialog和showModelessDialog里的内容?
 57 None.gif  在showModalDialog和showModelessDialog里是不能按F5刷新的,又不能弹出菜单。这个只能依靠javascript了,以下是相关代码:
 58 None.gif
 59 None.gif < body onkeydown = " if (event.keyCode==116){reload.click()} " >
 60 None.gif < a id = " reload "  href = " filename.htm "  style = " display:none " > reloaddot.gif </ a >
 61 None.gif 将filename.htm替换成网页的名字然后将它放到你打开的网页里,按F5就可以刷新了,注意,这个要配合 < base  target = " _self " > 使用,不然你按下F5会弹出新窗口的。
 62 None.gif四、如何用javascript关掉showModalDialog(或showModelessDialog)打开的窗口。
 63 None.gif   < input type = " button "  value = " 关闭 "  onclick = " window.close() " >
 64 None.gif也要配合 < base  target = " _self " > ,不然会打开一个新的IE窗口,然后再关掉的。
 65 None.gif五《未实现
 66 None.gifshowModalDialog和showModelessDialog数据传递技巧。
 67 None.gif  (作者语:本来想用一问一答形式来写的,但是我想不出这个怎么问,所以只好这样了。)
 68 None.gif  这个东西比较麻烦,我改了好几次了不是没办法说明白(语文水平越来越差了),只好用个例子说明了。
 69 None.gif  例子:
 70 None.gif    现在需要在一个showModalDialog(或showModelessDialog)里读取或设置一个变量var_name
 71 None.gif
 72 None.gif      一般的传递方式:
 73 None.gif        window.showModalDialog( " filename.htm " ,var_name)
 74 None.gif         // 传递var_name变量
 75 None.gif       在showModalDialog(或showModelessDialog)读取和设置时:
 76 None.gif        alert(window.dialogArguments) // 读取var_name变量
 77 None.gif         window.dialogArguments = " oyiboy " // 设置var_name变量
 78 None.gif     这种方式是可以满足的,但是当你想在操作var_name同时再操作第二个变理var_id时呢?就无法再进行操作了。这就是这种传递方式的局限性。
 79 None.gif    
 80 None.gif      以下是我建议使用的传递方式:
 81 None.gif        window.showModalDialog( " filename.htm " ,window)
 82 None.gif         // 不管要操作什么变量,只直传递主窗口的window对象
 83 None.gif       在showModalDialog(或showModelessDialog)读取和设置时:
 84 None.gif        alert(window.dialogArguments.var_name) // 读取var_name变量
 85 None.gif         window.dialogArguments.var_name = " oyiboy " // 设置var_name变量
 86 None.gif
 87 None.gif        同时我也可以操作var_id变量
 88 None.gif        alert(window.dialogArguments.var_id) // 读取var_id变量
 89 None.gif         window.dialogArguments.var_id = " 001 " // 设置var_id变量
 90 None.gif
 91 None.gif        同样还可以对主窗口的任何对象进行操作,如form对象里的元素。
 92 None.gif        window.dialogArguments.form1.index1.value = " 这是在设置index1元素的值 "
 93 None.gif
 94 None.gif < script language = " javascript " >
 95 None.gif         // 用户登陆中转窗口
 96 None.gif         // 设置打开窗口的宽度和高度,并全屏显示
 97 None.gif             var tWidth = window.screen .availWidth;
 98 None.gif            var tHeight = window.screen .availHeight;
 99 None.gif            
100 None.gif            con = window.open( " index.htm " , null , " width= " + tWidth + " ,height= " + tHeight + " ,menubar=0,status=yes,scrollbars=1,titlebar=0,top=0,left=0,resizable=1,location=0 " );
101 None.gif            window.opener = con;
102 None.gif            window.close();
103 None.gif             </ script >
104 None.gif

转载于:https://www.cnblogs.com/pbc1984/archive/2006/07/07/445496.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值