
var flag = true
if( flag ){
loadScript( "js/index.js" )
}
function loadScript( url ){
var script = document.createElement( "script" )
script.type = "type/javascipt"
script.src = url
document.getElementsByTagName( "枯慧head" )[0].appendChild( script )
}
// 动态加载js
if( flag ){
var script = document.createElement( "script" )
script.type = "text/javascript"核运
script.text = " "
document.getElementsByTagName( "head" )[0].appendChild( script )
}
// 动态加载外部css样式
if( flag ){
loadCss( "css/base.css" )
}
function loadCss( url ){
var link = document.createElement( "link" )
link.type = "text/css"
link.rel = "stylesheet"
link.href = url
document.getElementsByTagName( "head" )[0].appendChild( link )
}
// 动态加载css样式
if( flag ){
var style = document.createElement( "style" )
style.type = "text/css"
document.getElementsByTagName( "head" )[0].appendChild( style )
var sheet = document.styleSheets[0]
insertRules( sheet,"#gaga1","background:#f00",0 )
}
function insertRules( sheet,selectorTxt,cssTxt,position ){
if( sheet.insertRule ){ // 判断非IE浏览器
sheet.insertRule( selectorTxt + "{" + cssTxt +"}" ,position )
}else if( sheet.addRule ){ //判断是否是IE浏览器
sheet.addRule( selectorTxt ,cssTxt ,position )
}
}
项目中需要用到动态加载CSS 文件,整理了一下,顺便融合了动态加载JS 的功能写成了一个对象,先上代码:var dynamicLoading = {
css: function(path){
if(!path || path.length === 0){
throw new Error('argument "path" is required !')
}
var head = document.getElementsByTagName('head')[0]
var link = document.createElement('link')
link.href = path
link.rel = 'stylesheet'
link.type = 'text/css'
head.appendChild(link)
},
js: function(path){
if(!path || path.length === 0){
throw new Error('argument "path" is required !')
}
var head = document.getElementsByTagName('head')[0]
var script = document.createElement('睁拆敏script')
script.src = path
script.type = 'text/javascript'
head.appendChild(script)
}
}
对象包含两个完全独立的方法,分别用来加载CSS 文件和JS 文件,参数均为欲加载的文件路径悉枝。原理非常的简单:对于不同的加载文件类型创建不同的节点,然后添加各自的属性,最后扔到head 标签里面。经测试,本方法兼容各浏览器,安全、无毒、环保,是 web 开发人员工作常备代码。
下面是调用代码,异常御键简单:
//动态加载 CSS 文件
dynamicLoading.css("test.css")
//动态加载 JS 文件
dynamicLoading.js("test.js")
jquery动态加载css,js文件方法方法1:
代码如下
复制代码代码如下:
$.getscript("test.js")
方法2:
代码如下
复制代码代码如下:
function loadjs(file){
var head = $('head').remove('#loadscript')
$("<scri"+"pt>"+"</scr"+"ipt>").attr({src:file,type:'text/javascript',id:'load'}).appendto(head)
}
方法3:
代码如下
复制代码代码如下:
$("<scri"+"pt>"+"</scr"+"ipt>碧段").attr({src:file,type:'text/javascript',id:'load'}).appendto($('head').remove('#loadscript'))
下面附一些js动态加载js,css文件的方法。
以下代码是摘自news.qq.com页面里的代码的行皮,本人未进行测试,程序看着应该没有问题的,可以做为参考的,主要用来在网页底部位置,实现动态加档慧差载js文件到网页<head>标签的后面,通过DOM来实现的,代码如下:
代码如下
复制代码代码如下:
<script>
var SCRIPT_TIMEOUT = 20000
var QVPL_PATH = "/QVPL1.0.0.js"
function loadHelper (jsurl) {
var oScriptEl, oTimeoutHDL, oHead
oScriptEl = document.createElement("script")
oScriptEl.type = "text/javascript"
oScriptEl.language = "javascript"
oScriptEl.src = jsurl
oScriptEl.onreadystatechange = doCallback
oScriptEl.onload = function()
{
this.readyState = "complete"
doCallback()
if(typeof(lianbo) == "object"){
lianbo.init(window.QVPL)
}
}
oTimeoutHDL = window.setTimeout(doError,SCRIPT_TIMEOUT)
document.getElementsByTagName("head")[0].appendChild(oScriptEl)
function doCallback()
{
if (oScriptEl.readyState == "complete" || oScriptEl.readyState == "loaded")
{
oScriptEl.onload = oScriptEl.onreadystatechange = new Function()
window.clearTimeout(oTimeoutHDL)
}
}
function doError()
{
oScriptEl.parentNode.removeChild(oScriptEl)
}
}
loadHelper(QVPL_PATH)
</script>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)