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 相关文章推荐
addRule在firefox下的兼容写法
Nov 30 Javascript
JQuery onload、ready概念介绍及使用方法
Apr 27 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
Jul 29 Javascript
javascript静态页面传值的三种方法分享
Nov 12 Javascript
ExtJS4中使用mixins实现多继承示例
Dec 03 Javascript
js读写json文件实例代码
Oct 21 Javascript
JavaScript数组前面插入元素的方法
Apr 06 Javascript
js实现防止被iframe的方法
Jul 03 Javascript
jQuery EasyUI中DataGird动态生成列的方法
Apr 05 Javascript
Javascript面试经典套路reduce函数查重
Mar 23 Javascript
Bootstrap Table快速完美搭建后台管理系统
Sep 20 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
Aug 16 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
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
2010/11/01 PHP
实测在class的function中include的文件中非php的global全局环境
2013/07/15 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
如何通过Apache在本地配置多个虚拟主机
2020/07/29 PHP
jQuery对象[0]是什么含义?
2010/07/31 Javascript
js模仿jquery的写法示例代码
2013/06/16 Javascript
jQuery中bind,live,delegate与one方法的用法及区别解析
2013/12/30 Javascript
三种取消选中单选框radio的方法
2014/09/09 Javascript
js中split和replace的用法实例
2015/02/28 Javascript
jQuery晃动层特效实现方法
2015/03/09 Javascript
jQuery构造函数init参数分析续
2015/05/13 Javascript
jquery移除了live()、die(),新版事件绑定on()、off()的方法
2016/10/26 Javascript
AngularJS+Bootstrap实现多文件上传与管理
2016/11/08 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
使用Vue开发一个实时性时间转换指令
2018/01/17 Javascript
解决vue props 拿不到值的问题
2018/09/11 Javascript
详解在React-Native中持久化redux数据
2019/05/22 Javascript
基于canvasJS在PHP中制作动态图表
2020/05/30 Javascript
python标准算法实现数组全排列的方法
2015/03/17 Python
Python之Numpy的超实用基础详细教程
2019/10/23 Python
python实现与redis交互操作详解
2020/04/21 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
css3的transition效果和transfor效果示例介绍
2013/10/30 HTML / CSS
澳大利亚优质的家居用品和生活方式公司:Bed Bath N’ Table
2019/04/16 全球购物
关于礼仪的演讲稿
2014/01/04 职场文书
《蒙娜丽莎之约》教学反思
2014/02/27 职场文书
城市精细化管理实施方案
2014/03/04 职场文书
党员自我对照检查材料
2014/08/19 职场文书
2014年教师节活动总结
2014/08/29 职场文书
学习型党组织心得体会
2014/09/12 职场文书
家庭贫困证明范本(经典版)
2014/09/22 职场文书
用人单位终止解除劳动合同证明书
2014/10/06 职场文书
2014年前台接待工作总结
2014/12/05 职场文书
世界遗产导游词
2015/02/13 职场文书
公司劳动纪律管理制度
2015/08/04 职场文书
vue 自定义组件添加原生事件
2022/04/21 Vue.js