javascript+iframe 实现无刷新载入整页的代码


Posted in Javascript onMarch 17, 2010

jquery有一个load()方法,使用方法如:$("#div").load("/index.html");这样就可以将index.html加载到ID为div的容器中,
用iframe也可以实现,但没有上述做法完美,参见discuz那些网站,如登陆弹出一个层,也是载入的一个页面,但我发现状态栏左边出现的是 正在打开about:blank,不知道是不是将iframe的src设为about:blank,然后在编辑iframe呢?但注意了,查看源代码的时候却看不到载入页面的时候是看不到载入的这个页面的源代码,不知道是不是才用了跟jquery一样分析head,然后将载入页面的头部信息添加到主页面的头部,然后用eval()函数执行javascript代码,,求解?
以下我用了一个页面做为承载载入页面源代码的容器,命名为do.html,传递一个参数uri告诉do.html要载入的页面!
示例DEMO:http://mi.8866.org:2/management.aspx/ 直接点登陆既可
该页面加载了两个js文件

<script type="text/javascript" src="/image/script.ashx/global.js?ver=1.0.0"></script> 
<script type="text/javascript" src="/image/script.ashx/plus.js?ver=1.0.0"></script>

do.html的源代码为:
<html> 
<head> 
<title>载入中...</title> 
<script type="text/javascript" src="/image/script.ashx/do.js?ver=1.0"></script> 
</head> 
<body> 
</body> 
</html>

File:do.js
document.write("<script src=\"/image/script.ashx/global.js?ver=1.0.0\"></script>"); 
document.write("<script src=\"/image/script.ashx/plus.js?ver=1.0.0\"></script>"); 
window.onload=function(){ 
j.plus.loadPage({uri:"/",time:1},{ 
start:function(){/*开始加载的回执函数*/}, 
over:function(){/*加载完成的回执函数*/}}); 
}

loadPage的定义如下:
if(!typeof(window.j))window.j=new js(); 
j.plus=new plus(); 
function plus(){} 
plus.prototype.loadPage=function(r,callback,e,times){ 
/* 
r 请求; r.time : 等待加载时间(毫秒); 
callback :回执函数 (callback.start(),callback.over()) 
e.element 页面容器; */ 
if(!r.uri)alert('page uri parameters not be found!'); 
var aj=new ajax(); 
aj.request(r,{ 
start:function(){if(callback.start)callback.start();if(e)e.innerHTML='加载中..';else{document.body.innerHTML='加载中';}}, 
error:function(x){if(e)e.innerHTML='加载失败!';else document.body.innerHTML='加载失败';}, 
success:function(x){ 
var func=function(){if(callback.over)callback.over();if(e)e.innerHTML=x;else document.write(x);}; 
if(r.time){var t=new timer(r.time,func);t.start();}/*延迟显示*/ 
else func(); 
}}); 
} 
/*aj为ajax请求对象在global.js中定义 
* timer为实现一个定时器的代码,在plus.js中有定义 */

函数已经定义完成,我们在需要加载的地方添加代码:
File:/management.aspx/
var bd=j.$("mainbody"); // mainbody为一个div容器 
var uri="/do.html?uri=/management.aspx/"+uri; 
bd.innerHTML="<iframe src='"+uri+"' frameborder='0' width='"+(j.x()-200)+"' height='100%' scrolling='no'></iframe>";

由于do.html会被缓存,所以在do.js中用ajax将返回的html输出到do.html
在线演示地址 http://demo.3water.com/js/menu_iframe/index.htm
Javascript 相关文章推荐
jqGrid读取选择的多行的某个属性代码
May 18 Javascript
Json解析的方法小结
Jun 22 Javascript
javascript数组去重方法分析
Dec 15 Javascript
文件上传的几个示例分享【推荐】
Dec 16 Javascript
JS绘制微信小程序画布时钟
Dec 24 Javascript
canvas绘制七巧板
Feb 03 Javascript
JS 组件系列之BootstrapTable的treegrid功能
Jun 16 Javascript
利用jsonp与代理服务器方案解决跨域问题
Sep 14 Javascript
基于vue2实现上拉加载功能
Nov 28 Javascript
React 使用browserHistory项目访问404问题解决
Jun 01 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
Mar 19 Javascript
JavaScript中break、continue和return的用法区别实例分析
Mar 02 Javascript
js select常用操作控制代码
Mar 16 #Javascript
js实现的日期操作类DateTime函数代码
Mar 16 #Javascript
javascript json2 使用方法
Mar 16 #Javascript
jQuery 选择器理解
Mar 16 #Javascript
jQuery 学习入门篇附实例代码
Mar 16 #Javascript
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
Mar 16 #Javascript
Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
Mar 16 #Javascript
You might like
基于mysql的论坛(5)
2006/10/09 PHP
Laravel 5框架学习之子视图和表单复用
2015/04/09 PHP
最新版本PHP 7 vs HHVM 多角度比较
2016/02/14 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
2019/10/11 PHP
用php实现分页效果的示例代码
2020/12/10 PHP
IE 当eval遇上function的处理
2011/08/09 Javascript
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
jQuery 实现侧边浮动导航菜单效果
2014/12/26 Javascript
javascript产生随机数方法汇总
2016/01/25 Javascript
基于canvas实现的绚丽圆圈效果完整实例
2016/01/26 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
2016/03/30 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
2016/06/15 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
微信小程序自定义toast实现方法详解【附demo源码下载】
2017/11/28 Javascript
Webpack中publicPath路径问题详解
2018/05/03 Javascript
关于vue编译版本引入的问题的解决
2018/09/17 Javascript
11个教程中不常被提及的JavaScript小技巧(推荐)
2019/04/17 Javascript
基于Node.js的大文件分片上传示例
2019/06/19 Javascript
JS实现关闭小广告特效
2021/01/29 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
JavaScript indexOf()原理及使用方法详解
2020/07/09 Javascript
Python实现通过继承覆盖方法示例
2018/07/02 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
2018/10/11 Python
Python后台管理员管理前台会员信息的讲解
2019/01/28 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
Python内存管理实例分析
2019/07/10 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
2019/09/26 Python
python中for in的用法详解
2020/04/17 Python
Python爬虫爬取博客实现可视化过程解析
2020/06/29 Python
python调用摄像头的示例代码
2020/09/28 Python
python 递归相关知识总结
2021/03/03 Python
俄罗斯购买自行车网站:Vamvelosiped
2021/01/29 全球购物
高中毕业自我鉴定
2013/12/19 职场文书
服装电子商务创业计划书
2014/01/30 职场文书
优秀护士先进事迹
2014/05/08 职场文书