Iframe刷页

 看到题目相信大家都已经知道这次要讲述什么内容了。关于Iframe刷页问题在网络中随便一搜索就能找到,我也是这么做的,可是搜索到的结果不一定就是自己的东西,因此我们应该学会总结。在这里我们就来总结一下关于Iframe刷页。
      网络中的论坛或者是博客中大多数都是用的父页A.aspx和子页B.aspx形式来举例子的,这里我们的例子来用三个页面,一个父页A.aspx和两个子页B.aspx、C.aspx,可能大家会觉得,为何要用两个子页呢,用一个子页和两个子页有什么区别呢?因为我们这里要用到从子页C.aspx来刷新子页B.aspx。
      下面先讲解第一种刷新方法:“重新定向到本页”
父页A.aspx的脚本如下:
 1 ExpandedBlockStart.gif ContractedBlock.gif <% dot.gif @ Page language="c#" Codebehind="A.aspx.cs" AutoEventWireup="false" Inherits="Demo.A"  %>
 2 None.gif <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"  >
 3 None.gif < HTML >
 4 None.gif     < HEAD >
 5 None.gif         < title > A </ title >
 6 None.gif         < meta  content ="Microsoft Visual Studio .NET 7.1"  name ="GENERATOR" >
 7 None.gif         < meta  content ="C#"  name ="CODE_LANGUAGE" >
 8 None.gif         < meta  content ="JavaScript"  name ="vs_defaultClientScript" >
 9 None.gif         < meta  content ="http://schemas.microsoft.com/intellisense/ie5"  name ="vs_targetSchema" >
10 None.gif     </ HEAD >
11 None.gif     < body  MS_POSITIONING ="GridLayout" >
12 None.gif         < form  id ="Form1"  method ="post"  runat ="server" >
13 None.gif             < iframe  id ="BIframe"  name ="BIframe"  style ="Z-INDEX: 102; LEFT: 0px; WIDTH: 748px; POSITION: absolute; TOP: 0px; HEIGHT: 511px"  marginWidth ="0"  marginHeight ="0"  src ="B.aspx"  frameBorder ="0"  scrolling ="no"  allowTransparency ></ iframe >
14 None.gif             < iframe  id ="CIframe"  name ="CIframe"  style ="Z-INDEX: 105; LEFT: 750px; OVERFLOW: hidden; WIDTH: 254px; POSITION: absolute; TOP: 0px; HEIGHT: 511px"  marginWidth ="0"  marginHeight ="0"  src ="C.aspx"  frameBorder ="0"     scrolling ="no"  allowTransparency DESIGNTIMEDRAGDROP ="16" ></ iframe >
15 None.gif         </ form >
16 None.gif     </ body >
17 None.gif </ HTML >
父页A.aspx无后台代码。
子页B.aspx的脚本如下:
 1 ExpandedBlockStart.gif ContractedBlock.gif <% dot.gif @ Page language="c#" Codebehind="B.aspx.cs" AutoEventWireup="false" Inherits="Demo.B"  %>
 2 None.gif <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"  >
 3 None.gif < HTML >
 4 None.gif     < HEAD >
 5 None.gif         < title > B </ title >
 6 None.gif         < meta  content ="Microsoft Visual Studio .NET 7.1"  name ="GENERATOR" >
 7 None.gif         < meta  content ="C#"  name ="CODE_LANGUAGE" >
 8 None.gif         < meta  content ="JavaScript"  name ="vs_defaultClientScript" >
 9 None.gif         < meta  content ="http://schemas.microsoft.com/intellisense/ie5"  name ="vs_targetSchema" >
10 None.gif         < meta  http-equiv ="pragma"  content ="no-cache" >
11 None.gif         < meta  http-equiv ="Cache-Control"  content ="no-cache, must-revalidate" >
12 None.gif         < base  target ="_self" >
13 ExpandedBlockStart.gifContractedBlock.gif         < script  language ="javascript"  type ="text/javascript" > dot.gif
14InBlock.gif            function RefreshmyForm()
15ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
16InBlock.gif                var myForm = document.Form1;
17InBlock.gif                myForm.submit();
18ExpandedSubBlockEnd.gif            }

19ExpandedBlockEnd.gif        
</ script >
20 None.gif     </ HEAD >
21 None.gif     < body  MS_POSITIONING ="GridLayout" >
22 None.gif         < form  id ="Form1"  method ="post"  runat ="server" >
23 None.gif             < div  id ="LayersDiv"  style ="FONT-SIZE: 9pt; Z-INDEX: 112; LEFT: 0px; WIDTH: 175px; CURSOR: hand; COLOR: navy; PADDING-TOP: 6px; FONT-STYLE: normal; FONT-FAMILY: 宋体; POSITION: absolute; TOP: 0px; HEIGHT: 26px; TEXT-ALIGN: center; FONT-VARIANT: normal"  onclick ="LayersDivOnClick();"  align ="left" > Div层显示控制 </ div >
24 None.gif             < div  id ="LayersControlDiv"  style ="Z-INDEX: 115; LEFT: 0px; VISIBILITY: hidden; WIDTH: 156px; CURSOR: hand; POSITION: absolute; TOP: 26px; HEIGHT: 360px" > 隐藏的Div层 </ div >
25 None.gif         </ form >
26 ExpandedBlockStart.gifContractedBlock.gif         < script  language ="javascript"  type ="text/javascript" > dot.gif
27InBlock.gif        var myDiv = document.getElementById("LayersControlDiv");
28InBlock.gif        function LayersDivOnClick()
29ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
30InBlock.gif            if(myDiv.style.visibility == "hidden")
31ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
32InBlock.gif                myDiv.style.visibility = "visible";
33ExpandedSubBlockEnd.gif            }

34InBlock.gif            else
35ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
36InBlock.gif                myDiv.style.visibility = "hidden";
37ExpandedSubBlockEnd.gif            }

38ExpandedSubBlockEnd.gif        }

39ExpandedBlockEnd.gif        
</ script >
40 None.gif     </ body >
41 None.gif </ HTML >
(这里有一个控制Div层显示的JavaScript的方法从第26行开始的,以及第10、11、12行标记是为了去处页面缓存的,当某个aspx页面作为弹出页面或者嵌入在Iframe中的页面而言是需要这三行代码消除页面缓存的,否则呈现的是缓存中的数据页面——不值得一提,但还是提了,呵呵……)
子页B.aspx的后台代码:
主要来关心一下Page_Load事件的代码,其他的在这里省略了
 1 None.gif          private   void  Page_Load( object  sender, System.EventArgs e)
 2 ExpandedBlockStart.gifContractedBlock.gif         dot.gif {
 3InBlock.gif            string myStr = String.Empty;
 4InBlock.gif            if(!this.Page.IsPostBack)
 5ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
 6InBlock.gif                myStr="这是重定向刷新B.aspx页面";
 7InBlock.gif                this.Response.Write("<script>alert('" + myStr + "');</script>");
 8ExpandedSubBlockEnd.gif            }

 9InBlock.gif            else
10ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
11InBlock.gif                myStr="这是重载本页后刷新B.aspx页面";
12InBlock.gif                this.Response.Write("<script>alert('" + myStr + "');</script>");
13ExpandedSubBlockEnd.gif            }

14ExpandedBlockEnd.gif        }
下面我们在C.aspx页面中放置两个服务器控件“Button”(Button1和Button2),Text属性分别为“重定向B.aspx页面”和“重载B.aspx页面”,那么子页C.aspx的脚本如下:
 1 ExpandedBlockStart.gif ContractedBlock.gif <% dot.gif @ Page language="c#" Codebehind="C.aspx.cs" AutoEventWireup="false" Inherits="Demo.C"  %>
 2 None.gif <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"  >
 3 None.gif < HTML >
 4 None.gif     < HEAD >
 5 None.gif         < title > C </ title >
 6 None.gif         < meta  name ="GENERATOR"  Content ="Microsoft Visual Studio .NET 7.1" >
 7 None.gif         < meta  name ="CODE_LANGUAGE"  Content ="C#" >
 8 None.gif         < meta  name ="vs_defaultClientScript"  content ="JavaScript" >
 9 None.gif         < meta  name ="vs_targetSchema"  content ="http://schemas.microsoft.com/intellisense/ie5" >
10 None.gif         < meta  http-equiv ="pragma"  content ="no-cache" >
11 None.gif         < meta  http-equiv ="Cache-Control"  content ="no-cache, must-revalidate" >
12 None.gif         < base  target ="_self" >
13 ExpandedBlockStart.gifContractedBlock.gif         < script  language ="javascript"  type ="text/javascript" > dot.gif
14InBlock.gif            function RefreshmyForm()
15ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
16InBlock.gif                var myForm = document.Form1;
17InBlock.gif                myForm.submit();
18ExpandedSubBlockEnd.gif            }
19ExpandedBlockEnd.gif         </ script >
20 None.gif     </ HEAD >
21 None.gif     < body  MS_POSITIONING ="GridLayout" >
22 None.gif         < form  id ="Form1"  method ="post"  runat ="server" >
23 None.gif             < div  id ="BtnDiv"  style ="Z-INDEX: 107; LEFT: 0px; WIDTH: 254px; POSITION: absolute; TOP: 0px; HEIGHT: 290px; BACKGROUND-COLOR: #f2f9ff"  align ="center" >
24 None.gif                 < asp:Button  id ="Button1"  runat ="server"  Width ="120px"  Text ="重定向B.aspx页面" ></ asp:Button >
25 None.gif                 < asp:Button  id ="Button2"  runat ="server"  Width ="108px"  Text ="重载B.aspx页面" ></ asp:Button ></ div >
26 None.gif         </ form >
27 None.gif   </ body >
28 None.gif </ HTML >
子页C.aspx的后台代码:
主要关心一下Button1的Click事件
1 None.gif          private   void  Button1_Click( object  sender, System.EventArgs e)
2 ExpandedBlockStart.gifContractedBlock.gif         dot.gif {
3InBlock.gif            this.Response.Write("<script>window.parent.document.getElementById('BIframe').src='B.aspx';</script>");
4ExpandedBlockEnd.gif        }
此时启动调试程序(当然将A.aspx设为启动页后调试),点击“Button1”,弹出的消息框永远是“ 这是重定向刷新B.aspx页面”。

      再来看看第二种刷新方法:“重载页面”
子页C.aspx的后台代码:
主要关心一下Button2的Click事件
1 None.gif          private   void  Button2_Click( object  sender, System.EventArgs e)
2 ExpandedBlockStart.gifContractedBlock.gif         dot.gif {
3InBlock.gif            this.Response.Write("<script>window.parent.document.frames.BIframe.RefreshmyForm();</script>");
4ExpandedBlockEnd.gif        }
这里我们调用了B.aspx页面的JavaScript的一个回传页面的方法RefreshmyForm(),此时启动调试程序,点击“Button2”,弹出的消息框永远是“ 这是重载本页后刷新B.aspx页面”。

那么有人就会问了,如何在Iframe的页面中来刷新父页面呢?
我们仍然在C.aspx页面中做这个事情,加入“Button3”,Text属性为“重定向A.aspx页面”,C.aspx的脚本代码我们在这里省略。子页C.aspx的后台代码:
主要关心Button3的Click事件
1 None.gif          private   void  Button3_Click( object  sender, System.EventArgs e)
2 ExpandedBlockStart.gifContractedBlock.gif         dot.gif {
3InBlock.gif            this.Response.Write("<script>window.parent.location=window.parent.location;</script>");
4ExpandedBlockEnd.gif        }

      在这里我们讲解了关于从Iframe的一个页面刷新另外一个Iframe页面的两种方法,以及简单说明了如何从Iframe的页面来刷新其所在的父页面。
posted on 2007-05-19 09:26 zwgood 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/zw0736/archive/2007/05/19/752213.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值