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 相关文章推荐
基于JQuery的数字改变的动画效果--可用来做计数器
Aug 11 Javascript
jQuery快速上手:写jQuery与直接写JS的区别详细解析
Aug 26 Javascript
使用JQuery FancyBox插件实现图片展示特效
Nov 16 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)
Feb 16 Javascript
Angularjs整合微信UI(weui)
Mar 15 Javascript
jQuery CSS3自定义美化Checkbox实现代码
May 12 Javascript
Angular 4中如何显示内容的CSS样式示例代码
Nov 06 Javascript
浅谈React中组件间抽象
Jan 27 Javascript
Vue的轮播图组件实现方法
Mar 03 Javascript
利用jsonp解决js读取本地json跨域的问题
Dec 11 Javascript
JSON的parse()方法介绍
Jan 31 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
Sep 29 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分页实例代码分享
2011/07/28 PHP
11个PHP 分页脚本推荐
2011/08/15 PHP
php格式化json函数示例代码
2016/05/12 PHP
laravel中的错误与日志用法详解
2016/07/26 PHP
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
2014/09/26 NodeJs
JavaScript和CSS交互的方法汇总
2014/12/02 Javascript
浅谈jquery事件处理
2015/04/24 Javascript
JS与jQ读取xml文件的方法
2015/12/08 Javascript
js+css实现回到顶部按钮(back to top)
2016/03/02 Javascript
基于jquery实现智能提示控件intellSeach.js
2016/03/17 Javascript
微信小程序 登陆流程详细介绍
2017/01/17 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
详解vue.js的事件处理器v-on:click
2017/06/27 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
jquery实现选项卡切换代码实例
2019/05/14 jQuery
如何使用JavaScript实现栈与队列
2019/06/24 Javascript
jQuery实现可编辑的表格
2019/12/11 jQuery
浅析vue-router中params和query的区别
2019/12/24 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
2020/03/25 Javascript
vue实现输入框自动跳转功能
2020/05/20 Javascript
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
2018/01/17 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
详解Selenium-webdriver绕开反爬虫机制的4种方法
2020/10/28 Python
pandas针对excel处理的实现
2021/01/15 Python
CSS3实现多背景模拟动态边框的效果
2016/11/08 HTML / CSS
利用纯html5绘制出来的一款非常漂亮的时钟
2015/01/04 HTML / CSS
利用HTML5中的Canvas绘制一张笑脸的教程
2015/05/07 HTML / CSS
学生生病请假条范文
2014/02/16 职场文书
中秋节主持词
2014/04/02 职场文书
初中班主任评语
2014/04/24 职场文书
个人工作能力自我评价
2015/03/05 职场文书
当幸福来敲门英文观后感
2015/06/01 职场文书
用Python爬虫破解滑动验证码的案例解析
2021/05/06 Python
Python如何配置环境变量详解
2021/05/18 Python