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.
2.
3.
4.
5.
6.
7.
8. // main js function
9. function fMain(){
10. alert('main function execute success');
11. }
12.
13. // exec iframe function
14. function exec_iframe(){
15. window.myframe.fIframe();
16. }
17.
18.
19.
20.
21.
22.
A.html main
23.
24.
25.
26.
B.html
[html]view plaincopy
1.
2.
3.
4.
5.
6.
7.
8. // iframe js function
9. function fIframe(){
10. alert('iframe function execute success');
11. }
12.
13. // exec main function
14. function exec_main(){
15. parent.fMain();
16. }
17.
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.360docs.net/doc/844660385.html, 与https://www.360docs.net/doc/844660385.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.
2.parent.window.myframe.fIframe(); // execute parent myframe fIframe function
3.
这样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.
2.parent.parent.fMain(); // execute main function
3.
这样就能实现A.html 与B.html 跨域相互调用。
A.html
[html]view plaincopy
1.
2.
3.
4.
5.
6.
7.
8.
9. // main js function
10. function fMain(){
11. alert('main function execute success');
12. }
13.
14. // exec iframe function
15. function exec_iframe(){
16. if(typeof(exec_obj)=='undefined'){
17.exec_obj = document.createElement('iframe');
18.exec_https://www.360docs.net/doc/844660385.html, = 'tmp_frame';
19.exec_obj.src = 'http://127.0.0.1/execB.html';
20.exec_obj.style.display = 'none';
21. document.body.appendChild(exec_obj);
22. }else{
23.exec_obj.src = 'http://127.0.0.1/execB.html?' + Math.random();
24. }
25. }
26.
27.
28.
29.
30.
31.
A.html main
32.
33.
34.
35.
B.html
[html]view plaincopy
1.
2.
3.
4.
5.
6.
7.
8. // iframe js function
9. function fIframe(){
10. alert('iframe function execute success');
11. }
12.
13. // exec main function
14. function exec_main(){
15. if(typeof(exec_obj)=='undefined'){
16.exec_obj = document.createElement('iframe');
17.exec_https://www.360docs.net/doc/844660385.html, = 'tmp_frame';
18.exec_obj.src = 'http://localhost/execA.html';
19.exec_obj.style.display = 'none';
20. document.body.appendChild(exec_obj);
21. }else{
22.exec_obj.src = 'http://localhost/execA.html?' + Math.random();
23. }
24. }
25.
26.
27.
28.
29.
30.
B.html iframe
31.
<
/p>
32.
33.
execA.html
[html]view plaincopy
1.
2.
3.
4.
5.
6.
7.
8.
9.
10. parent.parent.fMain(); // execute main function
11.
12.
13.
execB.html
[html]view plaincopy
1.
2.
3.
4.
5.
6.
7.
8.
9.
10. parent.window.myframe.fIframe(); // execute parent myframe fIframe f
unction
11.
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
5JSP页面间传递参数方法介绍txt
js调用父窗口函数-iframe父窗口和子窗口相互的调用方法
js调用父窗口函数-iframe父窗口和子窗口相互的调用方法iframe父窗口和子窗口相互的调用方法解决方案[详细][全]来源:互联网收集分享:QQ1663551688 iframe父窗口和子窗口相互的调用方法集锦一、父窗口调用iframe子窗口方法 1、HTML语法:
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.360docs.net/doc/844660385.html,页面之间传递值的几种方式 页面传值是学习https://www.360docs.net/doc/844660385.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属性与