Javascript load Page,load css,load js实现代码


Posted in Javascript onMarch 31, 2010
/*********************************************** 
* Ajax Page Fetcher- by JavaScript Kit (www.javascriptkit.com) 
***********************************************/ 
var ajaxpagefetcher={ 
loadingmessage: "Loading Page, please wait...", 
exfilesadded: "", connect:function(containerid, pageurl, bustcache, jsfiles, cssfiles){ 
var page_request = false 
var bustcacheparameter="" 
if (window.XMLHttpRequest) // if Mozilla, IE7, Safari etc 
page_request = new XMLHttpRequest() 
else if (window.ActiveXObject){ // if IE6 or below 
try { 
page_request = new ActiveXObject("Msxml2.XMLHTTP") 
} 
catch (e){ 
try{ 
page_request = new ActiveXObject("Microsoft.XMLHTTP") 
} 
catch (e){} 
} 
} 
else 
return false 
var ajaxfriendlyurl=pageurl.replace(/^http:\/\/[^\/]+\//i, "http://"+window.location.hostname+"/") 
page_request.onreadystatechange=function(){ajaxpagefetcher.loadpage(page_request, containerid, pageurl, jsfiles, cssfiles)} 
if (bustcache) //if bust caching of external page 
bustcacheparameter=(ajaxfriendlyurl.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime() 
document.getElementById(containerid).innerHTML=ajaxpagefetcher.loadingmessage //Display "fetching page message" 
page_request.open('GET', ajaxfriendlyurl+bustcacheparameter, true) 
page_request.send(null) 
}, 
loadpage:function(page_request, containerid, pageurl, jsfiles, cssfiles){ 
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){ 
document.getElementById(containerid).innerHTML=page_request.responseText 
for (var i=0; i<jsfiles.length; i++) 
this.loadjscssfile(jsfiles[i], "js") 
for (var i=0; i<cssfiles.length; i++) 
this.loadjscssfile(cssfiles[i], "css") 
this.pageloadaction(pageurl) //invoke custom "onpageload" event 
} 
}, 
createjscssfile:function(filename, filetype){ 
if (filetype=="js"){ //if filename is a external JavaScript file 
var fileref=document.createElement('script') 
fileref.setAttribute("type","text/javascript") 
fileref.setAttribute("src", filename) 
} 
else if (filetype=="css"){ //if filename is an external CSS file 
var fileref=document.createElement("link") 
fileref.setAttribute("rel", "stylesheet") 
fileref.setAttribute("type", "text/css") 
fileref.setAttribute("href", filename) 
} 
return fileref 
}, 
loadjscssfile:function(filename, filetype){ //load or replace (if already exists) external .js and .css files 
if (this.exfilesadded.indexOf("["+filename+"]")==-1){ //if desired file to load hasnt already been loaded 
var newelement=this.createjscssfile(filename, filetype) 
document.getElementsByTagName("head")[0].appendChild(newelement) 
this.exfilesadded+="["+filename+"]" //remember this file as being added 
} 
else{ //if file has been loaded already (replace/ refresh it) 
var targetelement=(filetype=="js")? "script" : (filetype=="css")? "link" : "none" //determine element type to create nodelist using 
var targetattr=(filetype=="js")? "src" : (filetype=="css")? "href" : "none" //determine corresponding attribute to test for 
var allsuspects=document.getElementsByTagName(targetelement) 
for (var i=allsuspects.length; i>=0; i--){ //search backwards within nodelist for matching elements to remove 
if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(filename)!=-1){ 
var newelement=this.createjscssfile(filename, filetype) 
allsuspects[i].parentNode.replaceChild(newelement, allsuspects[i]) 
} 
} 
} 
}, 

pageloadaction:function(pageurl){ 
this.onpageload(pageurl) //call customize onpageload() function when an ajax page is fetched/ loaded 
}, 
onpageload:function(pageurl){ 
//do nothing by default 
}, 
load:function(containerid, pageurl, bustcache, jsfiles, cssfiles){ 
var jsfiles=(typeof jsfiles=="undefined" || jsfiles=="")? [] : jsfiles 
var cssfiles=(typeof cssfiles=="undefined" || cssfiles=="")? [] : cssfiles 
this.connect(containerid, pageurl, bustcache, jsfiles, cssfiles) 
} 
} //End object 
//Sample usage: 
//1) ajaxpagefetcher.load("mydiv", "content.htm", true) 
//2) ajaxpagefetcher.load("mydiv2", "content.htm", true, ["external.js"]) 
//3) ajaxpagefetcher.load("mydiv2", "content.htm", true, ["external.js"], ["external.css"]) 
//4) ajaxpagefetcher.load("mydiv2", "content.htm", true, ["external.js", "external2.js"]) 
//5) ajaxpagefetcher.load("mydiv2", "content.htm", true, "", ["external.css", "external2.css"])
Javascript 相关文章推荐
分享8款优秀的 jQuery 加载动画和进度条插件
Oct 24 Javascript
JQuery结合CSS操作打印样式的方法
Dec 24 Javascript
Seajs的学习笔记
Mar 04 Javascript
让alert不出现弹窗的两种方法
May 18 Javascript
JavaScript模拟重力状态下抛物运动的方法
Mar 03 Javascript
jQuery遍历DOM元素与节点方法详解
Apr 14 Javascript
JQuery给select添加/删除节点的实现代码
Apr 26 Javascript
用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
Nov 09 Javascript
JS实现简单抖动效果
Jun 01 Javascript
javascript checkbox/radio onchange不能兼容ie8处理办法
Jun 13 Javascript
Three.js利用顶点绘制立方体的方法详解
Sep 27 Javascript
详解Vue的异步更新实现原理
Dec 22 Vue.js
Javascript Jquery 遍历Json的实现代码
Mar 31 #Javascript
jquery+json实现的搜索加分页效果
Mar 31 #Javascript
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
Mar 31 #Javascript
ExtJS TabPanel beforeremove beforeclose使用说明
Mar 31 #Javascript
十个优秀的Ajax/Javascript实例网站收集
Mar 31 #Javascript
javascript中的107个基础知识收集整理 推荐
Mar 29 #Javascript
jquery CSS选择器笔记
Mar 29 #Javascript
You might like
推荐几个开源的微信开发项目
2014/12/28 PHP
apache php mysql开发环境安装教程
2016/07/28 PHP
Laravel中任务调度console使用方法小结
2017/05/07 PHP
详谈php中 strtr 和 str_replace 的效率问题
2017/05/14 PHP
php正则表达式使用方法整理集合
2020/01/31 PHP
YII2框架使用控制台命令的方法分析
2020/03/18 PHP
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
2017/03/02 Javascript
JavaScript实现简单的四则运算计算器完整实例
2017/04/28 Javascript
JQueryMiniUI按照时间进行查询的实现方法
2017/06/07 jQuery
详解 微信小程序开发框架(MINA)
2019/05/17 Javascript
Layui实现带查询条件的分页
2019/07/27 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
Vue+Bootstrap实现简易学生管理系统
2021/02/09 Vue.js
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
python机器学习理论与实战(一)K近邻法
2021/01/28 Python
Python查找两个有序列表中位数的方法【基于归并算法】
2018/04/20 Python
python配置文件写入过程详解
2019/10/19 Python
python 非线性规划方式(scipy.optimize.minimize)
2020/02/11 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
Python3爬虫中识别图形验证码的实例讲解
2020/07/30 Python
Python 如何定义匿名或内联函数
2020/08/01 Python
全球摩托车装备领导者:RevZilla
2017/09/04 全球购物
澳大利亚在线性感内衣商店:Fantasy Lingerie
2021/02/07 全球购物
机械工程师求职自我评价
2013/09/23 职场文书
英文简历中的自我评价
2013/10/06 职场文书
制冷与电控专业应届生求职信
2013/11/11 职场文书
资料员岗位职责
2013/11/17 职场文书
施工安全标语
2014/06/07 职场文书
干部对照检查材料范文
2014/08/26 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
2016八一建军节慰问信
2015/11/30 职场文书
读《教育心理学》心得体会
2016/01/22 职场文书
python实现网络五子棋
2021/04/11 Python
用Python爬取某乎手机APP数据
2021/06/15 Python
Arthas排查Kubernetes中应用频繁挂掉重启异常
2022/02/28 MySQL
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python