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 相关文章推荐
jquery实现不包含当前项的选择器实例
Jun 25 Javascript
jQuery日历插件datepicker用法详解
Mar 03 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
Aug 29 Javascript
javaScript嗅探执行神器-sniffer.js
Feb 14 Javascript
详解Vue使用 vue-cli 搭建项目
Apr 20 Javascript
原生JavaScrpit中异步请求Ajax实现方法
Nov 03 Javascript
React实现全局组件的Toast轻提示效果
Sep 21 Javascript
Element-UI踩坑之Pagination组件的使用
Oct 29 Javascript
详解微信小程序-canvas绘制文字实现自动换行
Apr 26 Javascript
详解微信UnionID作用
May 15 Javascript
JS访问对象两种方式区别解析
Aug 29 Javascript
js前端图片加载异常兜底方案
Jun 21 Javascript
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
本地机apache配置基于域名的虚拟主机详解
2013/08/10 PHP
php计算2个日期的差值函数分享
2015/02/02 PHP
PHP使用PDO操作数据库的乱码问题解决方法
2016/04/08 PHP
PHP数据对象PDO操作技巧小结
2016/09/27 PHP
php compact 通过变量创建数组
2016/11/15 PHP
laravel Validator ajax返回错误信息的方法
2019/09/29 PHP
超级退弹代码
2008/07/07 Javascript
SeaJS入门教程系列之使用SeaJS(二)
2014/03/03 Javascript
document.compatMode的CSS1compat使用介绍
2014/04/03 Javascript
基于JQuery制作可编辑的表格特效
2014/12/23 Javascript
JavaScript中的数组操作介绍
2014/12/30 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
Extjs 点击复选框在表格中增加相关信息行
2016/07/12 Javascript
快速解决Vue项目在IE浏览器中显示空白的问题
2018/09/04 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
2018/12/12 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
bootstrap tooltips在 angularJS中的使用方法
2019/04/10 Javascript
150行Node.js实现的dns代理工具
2019/08/02 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
Vue 嵌套路由使用总结(推荐)
2020/01/13 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
2020/05/12 Javascript
Python中用PIL库批量给图片加上序号的教程
2015/05/06 Python
Python实现对象转换为xml的方法示例
2017/06/08 Python
django 按时间范围查询数据库实例代码
2018/02/11 Python
python 非线性规划方式(scipy.optimize.minimize)
2020/02/11 Python
Python @property及getter setter原理详解
2020/03/31 Python
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
法人代表委托书
2014/04/04 职场文书
体育运动口号
2014/06/09 职场文书
银行党员批评与自我批评
2014/10/15 职场文书
2015年音乐教学工作总结
2015/07/22 职场文书
MongoDB安装使用并实现Python操作数据库
2021/06/28 MongoDB
Linux磁盘管理方法介绍
2022/06/01 Servers
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server