西西软件园多重安全检测下载网站、值得信赖的软件下载站!
软件
软件
文章
搜索

首页编程开发javascript|JQuery → 利用iframe实现javascript无刷新载入整页

利用iframe实现javascript无刷新载入整页

相关软件相关文章发表评论 来源:newmin时间:2010/3/17 11:46:51字体大小:A-A+

作者:刘铭点击:1277次评论:0次标签: iframe

华硕MultiFrame软件v1.0.22 官方安装版
  • 类型:系统其它大小:3.0M语言:中文 评分:5.0
  • 标签:
立即下载

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文件

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

2 <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 1 document.write("<script src=\"/image/script.ashx/global.js?ver=1.0.0\"></script>");

2 document.write("<script src=\"/image/script.ashx/plus.js?ver=1.0.0\"></script>");

3 window.onload=function(){

4 j.plus.loadPage({uri:"/",time:1},{

5 start:function(){/*开始加载的回执函数*/},

6 over:function(){/*加载完成的回执函数*/}});

7 }
loadPage的定义如下:
01 if(!typeof(window.j))window.j=new js();

02 j.plus=new plus();

03 function plus(){}

04

05 plus.prototype.loadPage=function(r,callback,e,times){

06 /*

07 r 请求; r.time : 等待加载时间(毫秒);

08 callback :回执函数 (callback.start(),callback.over())

09 e.element 页面容器; */

10 if(!r.uri)alert('page uri parameters not be found!');

11 var aj=new ajax();

12 aj.request(r,{

13 start:function(){if(callback.start)callback.start();if(e)e.innerHTML='加载中..';else{document.body.innerHTML='加载中';}},

14 error:function(x){if(e)e.innerHTML='加载失败!';else document.body.innerHTML='加载失败';},

15 success:function(x){

16 var func=function(){if(callback.over)callback.over();if(e)e.innerHTML=x;else document.write(x);};

17 if(r.time){var t=new timer(r.time,func);t.start();}/*延迟显示*/

18 else func();

19 }});

20 }

21

22 /*aj为ajax请求对象在global.js中定义

23 * timer为实现一个定时器的代码,在plus.js中有定义 */

函数已经定义完成,我们在需要加载的地方添加代码:

 

File:/management.aspx/

1 var bd=j.$("mainbody"); // mainbody为一个div容器

2 var uri="/do.html?uri=/management.aspx/"+uri;

3 bd.innerHTML="<iframe src='"+uri+"' frameborder='0' width='"+(j.x()-200)+"' height='100%' scrolling='no'></iframe>";
1 由于do.html会被缓存,所以在do.js中用ajax将返回的html输出到do.html
 

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)