当前位置:文档之家› iframe父子页面相互传值

iframe父子页面相互传值

iframe父子页面相互传值
iframe父子页面相互传值

iframe与主框架相互访问方法

1.同域相互访问

假设A.html与b.html domain都是localhost(同域)

A.html中iframe嵌入

B.html,name=myframe

A.html有js function fMain()

B.html有js function fIframe()

需要实现A.html 调用B.html 的fIframe(),B.html 调用A.html 的fMain()

A.html

[html]view plaincopy

1.

https://www.doczj.com/doc/8b4660385.html,/TR/html4/loose.dtd">

2.

3.

4.

5. main window

6.

7.

18.

19.

20.

21.

22.

A.html main

23.

24.

25.

26.

B.html

[html]view plaincopy

1.

https://www.doczj.com/doc/8b4660385.html,/TR/html4/loose.dtd">

2.

3.

4.

5. iframe window

6.

7.

18.

19.

20.

21.

22.

B.html iframe

23.

<

/p>

24.

25.

点击A.html的exec iframe function button,执行成功,弹出iframe function execute success。如下图

点击B.html的exec main function button,执行成功,弹出main function execute success。如下图

2.跨域互相访问

假设A.html domain是localhost,B.html domain 是127.0.0.1(跨域)

这里使用localhost与127.0.0.1 只是方便测试,localhost与127.0.0.1已经不同一个域,因此执行效果是一样的。

实际使用时换成https://www.doczj.com/doc/8b4660385.html, 与https://www.doczj.com/doc/8b4660385.html, 即可。

A.html中iframe嵌入

B.html,name=myframe

A.html有js function fMain()

B.html有js function fIframe()

需要实现A.html 调用B.html 的fIframe(),B.html 调用 A.html 的fMain() (跨域调用)

如果使用上面同域的方法,浏览器判断A.html 与 B.html 不同域,会有错误提示。Uncaught SecurityError: Blocked a frame with origin "http://localhost" from accessing a frame with origin "http://127.0.0.1". Protocols, domains, and ports must match.

实现原理:

因为浏览器为了安全,禁止了不同域访问。因此只要调用与执行的双方是同域则可以相互访问。

首先,A.html如何调用B.html的fIframe方法

1.在A.html 创建一个iframe

2.iframe的页面放在B.html 同域下,命名为execB.html

3.execB.html 里有调用B.html fIframe方法的js调用

[javascript]view plaincopy

1.

这样A.html 就能通过execB.html 调用B.html 的fIframe方法了。

同理,B.html 需要调用A.html fMain方法,需要在B.html 嵌入与A.html 同域的execA.html

execA.html 里有调用A.html fMain方法的js调用

[javascript]view plaincopy

1.

这样就能实现A.html 与B.html 跨域相互调用。

A.html

[html]view plaincopy

1.

https://www.doczj.com/doc/8b4660385.html,/TR/html4/loose.dtd">

2.

3.

4.

5. main window

6.

7.

27.

28.

29.

30.

31.

A.html main

32.

33.

34.

35.

B.html

[html]view plaincopy

1.

https://www.doczj.com/doc/8b4660385.html,/TR/html4/loose.dtd">

2.

3.

4.

5. iframe window

6.

7.

26.

27.

28.

29.

30.

B.html iframe

31.

<

/p>

32.

33.

execA.html

[html]view plaincopy

1.

https://www.doczj.com/doc/8b4660385.html,/TR/html4/loose.dtd">

2.

3.

4.

5. exec main function

6.

7.

8.

9.

12.

13.

execB.html

[html]view plaincopy

1.

https://www.doczj.com/doc/8b4660385.html,/TR/html4/loose.dtd">

2.

3.

4.

5. exec iframe function

6.

7.

8.

9.

12.

13.

执行如下图:

源码下载地址:点击查看

页面之间传递值的几种方式.doc

一.使用QueryString 使用QueryString在页面间传递值是一种非常常见的方法,我们在ASP中就常常用到。 (1)优点和缺点优点: 优点:1.使用简单,对于安全性要求不高时传递数字或是文本值非常有效。 缺点:1.缺乏安全性,由于它的值暴露在浏览器的URL地址中的。 2.不能传递对象。 (2)使用方法 1.在源页面的代码中用需要传递的名称和值构造URL地址。 2.在源页面的代码用Response.Redirect(URL);重定向到上面的 URL地址中。 3.在目的页面的代码使用Request.QueryString["name"];取出 URL地址中传递的值。 (3)应用举例 1.源页面*.aspx的代码: private void Button1_Click(object sender, System.EventArgs e) { String urlAddress; string Name1; string Name2; string Name3; string Name1Value = "HelloName1"; int Name2Value = 1234567; string Name3Value = "你好名称3"; urlAddress="destinationWebForm.aspx?Name1=" + Name1Value + "&" + "Name2=" + Name2Value.ToString() + "&" + "Name3=" + Name3Value; Response.Redirect(urlAddress); } 2.目的页面destinationWebForm.aspx的代码: private void Page_Load(object sender, System.EventArgs e) { String myName1Value; int myName2Value; string myName3Value; myName1Value = Request.QueryString["Name1"]; myName2Value=Convert.ToInt32(Request.QueryString["Name 2"]); myName3Value = Request.QueryString["Name3"]; } (4)可能出现的问题1在处理Resonse.QueryString函数汉字参数传递时,发生不能完整传递参数的具体值的错误,解决有两个方法。

Div 部分刷新 利用iframe刷新div 利用AJAX刷新部分div

Div 部分刷新 利用iframe刷新div 利用AJAX刷新部分div 一般的WEB页面,当用户访问时,会按需请求一个新页面,而这个新页面很大一部分的内容其实跟原页面是相同的,无非是某一行内容,或者某一小块内容要被刷新,这时候如果把整个页面再重新请求一遍,就很不划算,这时候我们可以使用一种部分刷新方法,就是使用HTML的iframe 标签。 iframe 元素会创建包含另外一个文档的内联框架(即行内框架)。这个标签的可用属性如下: 其中我们需要注意的是一个src 属性,它指定了在这个iframe块中你要用于显示的原代码。 例如: 好,下面我们就可以用JAVASCRIPT改变iframe块的内容,来实现页面的部分刷新了,示例代码如下:

1 <%@ Page Language="C#" AutoEventWireup="true" %> 2 //... 3 4 5 Lesson 1 - Demo 1 - IFrame "Ajax" 6 13 14 15

16
17 Page Load: 18 <%= DateTime.Now.ToLocalTime() %> 19
20
21 Current Time: 22 23
24 25
26 27 28 29 在这个页面中,先显示一个Page Load:的时间,以及一个按钮,然后一个iframe块,当点击按钮的时候,我们在它的响应函数refresh()中改变iframe块的src属性,也就是页面地址(url参数变化也算地址变动)这样就会引起这个iframe重新被加载,那个参数中用了一个?new Date()型参数,这样保证了每次都是不同的参数,每次都要变,如果这儿是个固定值比如"123"那么只有第一次点的时候变,而后面就不变了。但事实上,请求的一直都是IFramePage.aspx页面,只是每次都被服务端重新加载了,这样就会显示iframe更新的时间随按钮点击而变化,但页面load的那个时间是始终不变的。 下面是IFramePage.aspx的代码: 1 <%@ Page Language="C#" AutoEventWireup="true" %> 2//... 3

JSP页面间传递参数方法介绍txt

JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数。下面介绍一下实现的方法。 (1)直接在URL请求后添加 如:直接传递参数< /a> 特别的在使用response.sendRedirect做页面转向的时候,也可以用如下代码: response.sendRedirect("thexuan.jsp?action=transparams&detail=directe") ,可用request.getParameter(name)取得参数 (2)jsp:param 它可以实现主页面向包含页面传递参数,如下: 还可以实现在使用jsp:forward动作做页面跳转时传递参数,如下: < jsp:forward page="Relative URL"> < jsp:param name="paramname" value="paramvalue" /> < /jsp:forward> 通过这种方式和一般的表单参数一样的,也可以通过request.getParameter(name)取得参数 (3)设置session和request 通过显示的把参数放置到session和request中,以达到传递参数的目的 session.setAttribute(name,value); request.setAttribute(name,value) 取参数: value=(value className)session.getAttribute(name); value=(value className)request.getAttribute(name); 大家肯定已经注意到了,在取参数的时候,做了类型转换,这是因为放置在session和request 中的对象的属性被看作https://www.doczj.com/doc/8b4660385.html,ng.Object类型的了,如果不转换,在将直付给value时会报classcastexception异常。 在多个JSP页面之间传递参数 1. 怎么在多个JSP页面之间进行参数传递?需要使用JSP的内置作用域对象session。利用它的两个方法setAttribute(),getAttribute() 2. 下面的这个实例实现了把第一个JSP页面的参数传递给第三个页面的功能

js调用父窗口函数-iframe父窗口和子窗口相互的调用方法

js调用父窗口函数-iframe父窗口和子窗口相互的调用方法iframe父窗口和子窗口相互的调用方法解决方案[详细][全]来源:互联网收集分享:QQ1663551688 iframe父窗口和子窗口相互的调用方法集锦一、父窗口调用iframe子窗口方法 1、HTML语法: 2、父窗口调用子窗口:myFrame.window.functionName(); 3、子窗品调用父窗口:parent.functionName(); 简单地说,也就是在子窗口中调用的变量或函数前加个parent.就行 4、父窗口页面源码: functionsay(){ alert("parent.html------>I'matparent.html"); } functioncallDhild() { //document.frames("myFrame").f1(); myFrame.window.say(); } 5、子窗口页面: functionsay() { alert("child.html--->I'matchild.html"); } functioncallParent(){ parent.say(); }

C#页面间传值的几种方法

1。使用QueryString 使用QuerySting在页面间传递值已经是一种很老的机制了,这种方法的主要优点是实现起来非常简单,然而它的缺点是传递的值是会显示在浏览器的地址栏上的(不安全),同时又不能传递对象,但是在传递的值少而安全性要求不高的情况下,这个方法还是一个不错的方案。使用这种方法的步骤如下: 1,使用控件创建web表单(form) 2,创建可以返回表单的按钮和链接按钮 3,在按钮或链接按钮的单击事件里创建一个保存URL的字符变量 4,在保存的URL里添加QueryString参数 5,使用Response.Redirect重定向到上面保存的URL 下面的代码片断演示了如何实现这个方法: 源页面WebForm1.aspx.cs中的部分代码: private void Button1_Click(object sender, System.EventArgs e) { string url; url="WebForm2.aspx?name=" + TextBox1.Text + "&email=" + TextBox2.Text; Response.Redirect(url); } 目标页面WebForm2.aspx.cs中的部分代码: private void Page_Load(object sender, System.EventArgs e) { Label1.Text=Request.QueryString["name"]; Label2.Text=Request.QueryString["email"]; } 2。使用Session变量 使用Session变量是可以在页面间传递值的的另一种方式,在本例中我们把控件中的值存在Session变量中,然后在另一个页面中使用它,以不同页面间实现值传递的目的。但是,需要注意的是在Session变量存储过多的数据会消耗比较多的服务器资源,在使用session时应该慎重,当然了,我们也应该使用一些清理动作来去除一些不需要的session来降低资源的无谓消耗。使用Session变量传递值的一般步骤如下: 1,在页面里添加必要的控件 2,创建可以返回表单的按钮和链接按钮 3,在按钮或链接按钮的单击事件里,把控件的值添加到session变量里 4,使用Response.Redirect(或Server.Transfer)方法重定向到另一个页面5,在另一个页面提取session的值,在确定不需要使用该session时,要显式清除它 下面的代码片断演示了如何实现这个方法: 源页面WebForm1.aspx.cs中的部分代码: private void Button1_Click(object sender, System.EventArgs e) {

iframe的详细用法

iframe的详细用法 IFRAME 元素| iframe 对象 -------------------------------------------------------------------------------- 创建内嵌浮动框架。 成员表 下面的表格列出了iframe 对象引出的成员。请单击左侧的标签来选择你想要查看的成员类型。 标签属性/属性 SHOW: 标签属性/属性 行为 集合 事件 滤镜 方法 对象 样式 标签属性属性描述 ALIGN align 设置或获取表格排列。 ALLOWTRANSPARENCY allowTransparency 设置或获取对象是否可为透明。APPLICATION APPLICATION 表明对象的内容是否为HTML 应用程序(HTA),以便免除浏览器安全模式。 ATOMICSELECTION 指定元素及其内容是否可以一不可见单位统一选择。 BEGIN begin 设置或获取时间线在该元素上播放前的延迟时间。 BORDER border 设置或获取框架间的空间,包括3D 边框。 canHaveChildren 获取表明对象是否可以包含子对象的值。 canHaveHTML 获取表明对象是否可以包含丰富的HTML 标签的值。 CLASS className 设置或获取对象的类。 contentWindow 获取指定的frame 或iframe 的window 对象。 DATAFLD dataFld 设置或获取由dataSrc 属性指定的绑定到指定对象的给定数据源的字段。 DATASRC dataSrc 设置或获取用于数据绑定的数据源。 disabled 获取表明用户是否可与该对象交互的值。 END end 设置或获取表明元素结束时间的值,或者元素设置为重复的简单持续终止时间。firstChild 获取对象的childNodes 集合的第一个子对象的引用。

ASP页面传值

https://www.doczj.com/doc/8b4660385.html,页面之间传递值的几种方式 页面传值是学习https://www.doczj.com/doc/8b4660385.html,初期都会面临的一个问题,总的来说有页面传值、存储对象传值、ajax、类、model、表单等。但是一般来说,常用的较简单有QueryString,Session,Cookies,Application,Server.Transfer。 一、QueryString QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。 这种方法的优点:1.使用简单,对于安全性要求不高时传递数字或是文本值非常有效。 这种方法的缺点:1.缺乏安全性,由于它的值暴露在浏览器的URL地址中的。 2.不能传递对象。 使用方法:1.在源页面的代码中用需要传递的名称和值构造URL地址。 2.在源页面的代码用Response.Redirect(URL);重定向到上面的URL地址中。 3.在目的页面的代码使用Request.QueryString["name"];取出URL地址中传递的值。 例子:(1)a.aspx private void Button1_Click(object sender, System.EventArgs e) { string s_url; s_url = "b.aspx?name=" + Label1.Text; Response.Redirect(s_url); } (2)b.aspx private void Page_Load(object sender, EventArgs e) { Label2.Text = Request.QueryString["name"]; } 二、Session 想必这个肯定是大家使用中最常见的用法了,其操作与Application类似,作用于用户个人,所以,过量的存储会导致服务器内存资源的耗尽。 优点:1.使用简单,不仅能传递简单数据类型,还能传递对象。 2.数据量大小是不限制的。 缺点:1.在Session变量存储大量的数据会消耗较多的服务器资源。 2.容易丢失。 使用方法:1.在源页面的代码中创建你需要传递的名称和值构造Session变 量:Session["Name"]="Value(Or Object)"; 2.在目的页面的代码使用Session变量取出传递的值。Result = Session["Nmae"]

java web 学习笔记,超详细好用

一、文件上传入门 1. 应用: 用户上传头像、上传图片、邮件上传附件等 2. 页面表单的实现 文件上传表单和普通表单有两个区别 1) 表单的提交方式必须是 post 2) 需要文件上传字段 3) form 表单的 enctype 属性需要指定为 multipart/form-data 3. 服务器端解析request 在 Servlet 中通过 request.getInputStream 获得表单上传数据,会发现数据是分段发送的由于自己写程序解析有难度,我们可以使用Apache 开发的开源组件Commons-fileupload 需要导入 jar 包Commons-fileupload 和Commons-io 4 . UploadServlet 中处理文件上传程序

二、文件上传处理细节 1. 中文乱码问题 1) 文件名中文乱码问题,解决办法:告诉文件上传组件以什么编码方式来解码文件名 ServletUpload.setCharacterEncoding(“utf-8”); request. setCharacterEncoding(“utf-8”); 2) 普通字段中文乱码问题 fileitem.getString(“utf-8”); 2. 临时文件 3. 文件存放目录 1) 目录需要隐藏,禁止外界直接访问 2) 文件名需要保证不重复 3) 文件应该分目录存放

三、上传进度条 1. 实现进度监听 需要实现对文件上传进度的监听,需要给FileUpload 对象添加 ProgressListener 2. 在jsp 页面显示进度 实验: 1) 使用 iframe 发送请求,请求一个Servlet, 在Servlet 中返回响应,发送自增的num 此时会发现 iframe 会不停第想Servlet发送请求 2) 点击文件上传按钮后,iframe立刻停止刷新,直至上传完毕页面跳转至新页面 3)为了观察实验结果,将form 的 target 指定为 iframe, UploadServlet回送上传完毕的结果 4) 出现上述问题的原因,浏览器不支持多线程同时访问服务器只能同时发送一个请求, 这样的访问方式为同步访问 5) 要在文件上传的同时在iframe中实现进度访问,就需要ie浏览器与服务器进行异步交互 此时就需要 XMLHttpRequest 对象 在javascript中可以直接使用XMLHttpRequest 对象与服务器进行异步通信 获得XmlHttpRequest 对象的方式有两种 ie7以上版本 var xhr = null; if(window.XMLHttpRequest) xhr = new XMLHttpRequest(); ie7以下版本 if(window.ActiveXObject) xhr = new ActiveXObject(“Microsoft.XMLHTTP”); 获得对象后需要调用open方法输入请求地址 注意请求方式,地址的输入,并且需要设置为true 指定异步访问该地址 xhr.open(“get”,”/upload/servlet/UploadServlet”, false) // 调用send 方法发送请求,post方式需要发送消息体,get方式则不用直接传入null值 xhr.send(null); // 访问 responseText 属性获得 Servlet 回送的数据 document.write(xhr.responseText);

JSP与 servlet之间的传值

这几天做了一个项目,大量用到了JSP与servlet之间的传值,总结了一下 JSP与servlet之间的传值有两种情况:JSP -> servlet, servlet -> JSP. 通过对象request和session (不考虑application)完成传值. 一、JSP -> servlet JSP页面有3种方法向servlet传值:form表单、URL 、其他 ... <%...... session.setAttribute("testSession","Hello session"); reqeust.setAttribute("testRequest","Hello request"); %> click me

... 1、对于该JSP页面form表单的内容,如标签,在servlet可用request.getParameter("username");获取. 2、URL:比如这里的标签的href属性与
标签的action属性的值"JspServlet?action=toServlet",在servlet同样用request.getParameter("action")获取;所要注意的是这里的url 要和servlet在web.xml里的标签的路径所对应.这部分后面会提到. 3、java片段代码,servlet只能接到session.setAttribute("testSession","Hello session")的内容,而接不到request的内容.在servlet里用request.getSession().getAttribute("testSession")获

js操作frame详细解说,window.opener和window.parent的区别

frame框架里的页面要改其他同框架下的页面或父框架的页面就用parent window.opener引用的是window.open打开的页面的父页面。 window.frames对象可以引用iframe里的页面,也可以引用frameset里的页面。可以这样window.frames["iframe"].window.save(); window.frames[0].document.getElementByIdx_x('xx'); 可以这样 window.frames[0].document.body.innerHTML; frm = window.parent.window.frames['uploadFrame']; frmDocument = frm.document; frm.sb(3); //sb 是uploadFrame页面里的一个函数 对于firefox 如果你遇到报错:parent.document.frames has no properties 换为如下代码就可以了,这个代码IE,ff兼容. frm = window.parent.window.frames['uploadFrame'];其实frames 集合并不是挂在document 而是挂在window 对象下. 注意这样修改frame里的页面有限制,就是必须是同域下的,否则无法访问 如果是同一域下,但是子域名不同,那么涉及到的js,html文件都加上一句。document.domain = https://www.doczj.com/doc/8b4660385.html, [这里填写你的域名] document.getElementByIdx_x('iframeid').contentWindow.document.getElementByIdx_x('someel ementid'); window.opener 实际上就是通过window.open打开的窗体的父窗体。 比如在父窗体parentForm里面通过window.open("subForm.html"),那么在subform.html中window.opener 就代表parentForm,可以通过这种方式设置父窗体的值或者调用js方法。 如:1,window.opener.test(); ---调用父窗体中的test()方法 2,如果window.opener存在,设置parentForm中stockBox的值。

Matlab多窗口传值问题(GUI)

Matlab多窗口传值问题(GUI) (上传者说明:此文是转载的) 2009-02-05 13:16 %by dynamic % %For more information,see also % %https://www.doczj.com/doc/8b4660385.html,——中国最大的数学工具软件联盟论坛 % %https://www.doczj.com/doc/8b4660385.html,——专业、优秀和权威的MATLAB技术交流平台 % %Email:matlabsky@https://www.doczj.com/doc/8b4660385.html, 1.直接传递 当要在一个matlab中的.m文件打开一个新窗口时候,可以直接传递例如有两个窗口 A.fig/A.m 和 B.fig/B.m 在 A.m中 B(var1) ; 即可传入参数 那么在B中这样获取即可: if length(varargin)==1 some_var= varargin{1}; end 2.通过output属性传回 在A.m中 some_var=B(var1); 也就是 B还需要返回值。 那么在B中就需要设置handles的output值了 function varargout = B_OutputFcn(hObject, eventdata, handles) varargout{1} = some_var_in_figure_B;

3. 几个重要的函数 1.getappdata(h,'Name'); 获取窗口句柄为h中的'Name'变量 2.setappdata(h,'Name',value);设置窗口句柄为h中的'Name'变量为Value 3.isappdata(h,'Name'); 判断h句柄下面有无‘Name’的变量 4.rmappdata(h,'Name');删除h句柄下面‘Name’的变量 5.guidata(h); 获取窗口句柄为h的 handles结构 6.guidata(h,handles); 设置窗口句柄为h的handles结构为handles 7.guihandles(h) 生成handles结构 说明: 关于appdata的几个函数是最基本的,每个figure都可以有几个很多appdata,setappdata(0,'Name',value) 当设置句柄为0时,表示整个Matlab 共享的数据域,任何figure都可以访问。这也可以成为数据传递的另一种方式。 handles是我们在GUI的m文件经常看到的东西,为什么会有guidata呢?那是因为一个figure对象下面可能有很多其他的对象,例如 edit axes slider 等等,为了将这些东西组织起来供用户方便的访问,matlab特地的添加了这个数据结构,它包括改figure所有的控件。你可以直接访问 使用 guihandles(h) 可以生成 hanles结构,它包含 h 中的所有控件,其中h 可以从fig文件load进来。 guidata(h) 返回 matlab默认给这个 figure生成的 handles结构。 guidata(h,handles) 是修改 h (如果是一个figure) 或者 h 的父figure 的handles值。 它会不停的向上查找 h的parent ,直到为figure,然后便修改其handles值。 4.句柄概念 个人认为,句柄就是相当于指针的意思,在Matlab中,每一个GUI对象都有一个handle,他们都是一些小数或者整数,Matlab能够保证这些数字不重复,因此通过这个句柄就可以访问或者修改你的对象。 通过传递句柄的方式可以修改传递的值的内容,而传递变量就做不到,这点和C语言的指针类似。

winForm两个Form窗口之间的传值

首先定义两个Form,一个为Form1,一个为Form2,其中Form1作为父窗口,Form2作为子窗口 1、父窗口传值给子窗口 Form1中代码: public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Form2 lForm = new Form2();//实例化一个Form2窗口 lForm.String1 = "传值给子窗口Form2成功";//设置Form2中string1的值 lForm.SetValue();//设置Form2中Label1的 lForm.ShowDialog(); } Form2中代码: private string string1; public string String1 { set { string1 = value; } } public void SetValue() { https://www.doczj.com/doc/8b4660385.html,bel1.Text = string1; } public Form2() { InitializeComponent(); } 2、子窗口返回值给父窗口 Form1中代码:

public Form1() { InitializeComponent(); } private string strValue; public string StrValue { set { strValue = value; } } private void btnShowForm2_Click(object sender, EventArgs e) { Form2 lForm = new Form2(); lForm.Owner = this;//重要的一步,主要是使Form2的Owner指针指向Form1 lForm.ShowDialog(); MessageBox.Show(strValue);//显示返回的值 } From2中代码: public Form2() { InitializeComponent(); } private void btnClose_Click(object sender, EventArgs e) { Form1 lForm1 = (Form1)this.Owner;//把Form2的父窗口指针赋给lForm1 lForm1.StrValue = "子窗口Form2返回数值成功";//使用父窗口指针赋值this.Close(); }

https://www.doczj.com/doc/8b4660385.html,页面之间的数据传递与保持7页word

ASP页面之间的数据传递与保持 页面之间数据的传递与保持是实现网站与用户交互的重要手段之一,也是Web应程序的基本功能,它的实现效率对程序性能有直接的影响。ASP 提供了多种方法来实现数据的传递与保持,这些方法各有所长。以下对常用的几种方法做阐述。 一、数据在页面间的传递 在用户访问网站的过程中,页面之间的跳转总是非常频繁。用户通常点击页面上某个超链接而进入网站其它页面,也有可能点击某个按钮提交信息从而打开了目标页面,甚至是网页程序在某个条件达成时自动的页面重定向。无论哪种情况使得用户浏览时换了页面,都不能丢了用户的状态,也就是在用户本次访问网站过程中,其状态应该是连续的,有些数据必须在页面之间传递下去,以供目标页面获取。 目标页面可以通过Request对象来获取源页面传来的数据。 1.Request.QueryString QueryString是最简单最常用的传值方法,它能够获取HTTP查询字符串附在URL后面的参数值: URL?参数名1=参数值&参数名2=参数值...... 而以URL方式进行页面转换有以下几种: 超链接:<a>标记的href属性或控件HyperLink的NavigateURL 设置URL后面可以连接参数; 控件Button的postbackURL属性可以设置目标页面URL,后面可以连接参数;

表单数据以get方法发送给指定的目标URL,会将控件值作为参数连接在URL后面,参数名就是控件名或控件ID,参数值就是控件的值; Response对象的Redirect方法可以设置参数URL,使客户端浏览器立即重定向到指定的URL; Session对象的Transfer方法可以设置参数URL将客户端重定向到新的页面,它终止当前页的执行,保留当前页面的表单(Form)数据和查询字符串(QueryString),并为当前请求开始执行URL指定的目标页面,而源页面已加载的数据依然保存。 Session对象的Execute方法可以设置参数URL将客户端重定向到新的页面,它暂停当前页的执行,并为当前请求开始执行URL指定的新页面,然后再回到源页面继续运行。 当然,用户在浏览器的地址栏输入URL时也可以直接传递参数。 通过查询字符串传递的数据直接在URL中以明文传递,对用户是可见的,虽然可以加密。此方法简单、方便,但是传递的数据量少,且不能传递对象。这种方式传递的数据,在目标页面可以用Request.QueryString 获取: Request.QueryString[“参数名”] 2.Request.Form Request.Form获取客户端传递的表单数据集,即页面表单以post方法发送的数据。该方法可以传递大量数据,访问源页面表单控件中的数据。 使用以上方法都可以实现数据在页面之间的传递,但是这个数据仅能在指定的URL页面才能获取到,也就是说生命周期仅限于当前请求。如果

Aspnet页面中常用的几种传值方式

1. 使用QueryString变量 QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。下面是一个例子: a.aspx的C#代码 private void Button1_Click(object sender, System.EventArgs e) { string s_url; s_url = "b.aspx?name=" + Label1.Text; Response.Redirect(s_url); } b.aspx中C#代码 private void Page_Load(object sender, EventArgs e) { Label2.Text = Request.QueryString["name"]; } 2. 使用Application 对象变量 Application对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock。 a.aspx的C#代码 private void Button1_Click(object sender, System.EventArgs e) { Application["name"] = Label1.Text; Server.Transfer("b.aspx"); } b.aspx中C#代码 private void Page_Load(object sender, EventArgs e) { string name; Application.Lock(); name = Application["name"].ToString(); Application.UnLock(); } 3. 使用Session变量 想必这个肯定是大家使用中最常见的用法了,其操作与Application类似,作用于用户个人,所以,过量的存储会导致服务器内存资源的耗尽。 a.aspx的C#代码 private void Button1_Click(object sender, System.EventArgs e) { Session["name"] = Label.Text;

Iframe用法的详细讲解

Iframe用法的详细讲解 今天我们来学习Iframe 用法的详细讲解,快来一起学习吧。下面就和大家分享,来欣赏一下吧。 Iframe 用法的详细讲解 Iframe用法的详细讲解 把iframe解释成“浏览器中的浏览器“很是恰当 设定围绕图文框的边缘宽度 FRAMEBODER 设置边框是不否为3维(0=否,1=是) HEIGHT,WIDTH 设质边框的宽度和高度 SCROLLING 是否有滚动条(YES,NO,AUTO) SRC 指定IFRAME调用的文件或图片(HTML,HTM,GIF,JPEG,JPG,PNG,TXT IFRAME 元素| iframe 对象 创建内嵌浮动框架。 成员表 下面的表格列出了iframe 对象引出的成员。请单击左侧的标签来选择你想要查看的成员类型。 标签属性/属性

SHOW: 标签属性/属性 行为 集合 事件 滤镜 方法 对象 样式 标签属性属性描述 ALIGN align 设置或获取表格排列。 ALLOWTRANSPARENCY allowTransparency 设置或获取对象是否可为透明。 APPLICATION APPLICATION 表明对象的内容是否为HTML 应用程序(HTA),以便免除浏览器安全模式。 ATOMICSELECTION 指定元素及其内容是否可以一不可见单位统一选择。 BEGIN begin 设置或获取时间线在该元素上播放前的延迟时间。 BORDER border 设置或获取框架间的空间,包括3D 边框。 canHaveChildren 获取表明对象是否可以包含子对象的值。 canHaveHTML 获取表明对象是否可以包含丰富的HTML 标签的值。

CAS利用Iframe框架跨域Ajax登录

CAS利用Iframe框架跨域Ajax登录 因最近经常有时候被一些朋友问到关于CAS跨全域下的Ajax 登录方式实现,正好之前也分析Sina微博的SSO实现,文中也说了SINA 的SSO 实际上(或机制)直接使用了CAS 这个开源项目。于是本文中要说的CAS AJAX登录方式便参考了SINA 的AJAX登录实现。关于具体方案,CAS官方上好象没有提供相关说明,倒是有一文说到Without the Login Screen(详情参见CAS 之自定义登录页实践),其具体实现方式甚是麻烦,又是改源码,又是通过JS跳转,又是一堆配置。当然,虽然如此,但该文中所提到的获取login tikcet 的方式还是值的参考的,因为无论什么方式登录,前提是必须获取到该ticket才允许登录验证。 虽然这里所说的主要是针对CAS,其实具体的实现方式中有些还是值得参考的,如跨域设置cookie, jsonp + iframe 跨域异步请求、P3P 及关于spring webflow 等其它相关的一些信息。 思路 关于具体的实现思路基本上都是参考了SINA,所以详细信息可以在分析Sina微博的SSO实现看到或自己去firebug 一下sina micro-blog。 实践 Environment: cas-server-3.4.2.1 https://www.doczj.com/doc/8b4660385.html,:8080/cas/ cas-client-3.1.10 https://www.doczj.com/doc/8b4660385.html,:8080/login 以上域名是方便测试跨域,故修改本机hosts。

由于原本的CAS 登录方式是通过跳转、重定向的方式实现,所以需要对CAS的Server端进行调整,使其同时支持Ajax 方式登录。

使用框架布局页面

单元4——使用框架布局页面 学习目标: 理解框架布局的原理 掌握使用框架进行页面布局的方法 学习利用浮动框架嵌入插件 Dreamweaver CS3提供了一种很方便的可以进行网页布局的工具——框架。框架主要是用来把浏览器窗口划分为若干个区域,每个区域可以分别显示不同的网页。访问者浏览站点时,可以使某个区域的文档永远不更改,但可通过导航条的链接更改主要框架的内容。框架结构常被用在具有多个分类导航或多项复杂功能的Web页面上。 任务4.1 框架基本操作 在网页中,一个网页可以包含多个页面,此时需要用到框架。使用框架可以进行页面布局,把网页化分为几个区域。例如,一个水平框架用于放置Banner(也就是标题);左垂直框架用于放置导航;右垂直框架用于放置正文。每一个框架单独使用一个网页,从而使页面设计简单化。框架除了用于页面布局,还可用于制作目录。包含框架的网页称为框架集。框架集定义了各个框架的结构、数量、大小和目标等属性。本章将介绍框架的使用方法。 4.1.1创建一个新的框架集网页 (1)运行Dreamweaver CS3,选择“文件”→“新建”命令,弹出“新建文档”对话框,在对话框中选择“示例中的页”→“框架集”→“上方固定,左侧嵌套”选项,如下图所示。 (2)单击“创建”按钮,弹出“框架标签辅助功能属性”对话框,如下图所示,在此可为每一个框架指定一个标题。

(3)单击“确定”按钮,即可创建一个上方固定,左侧嵌套的框架集,如下图所示。 4.1.2保存框架 每个框架包含一个文件,因此一个框架集会包含多个文件,在保存网页时,要将整个网页文档都保存下来。操作步骤如下: (1)选择“文件”→“保存全部”命令,整个框架边框会出现一个阴影框,同时会弹出“另存为”对话框,命名为“index.html”,表示整个框架集的名称。 (2)单击“保存”按钮,弹出第二个“另存为”对话框,右边框架内侧出现阴影,命名为“main.htlm”,表示右边框架即主框架的文件名。 (3)单击“保存”按钮,依次弹出第3个和第4个“另存为”对话框,分别命名为“left.html” 和“top.html”,表示左边框架和上方框架的文件名。如下图所示:

相关主题
文本预览
相关文档 最新文档