本文简单介绍动态加载、移除、替换js/css文件 。有时候我们在写前端的时候,会有出现需要动态加载一些东如css js 这样能减轻用户加载负担,从而提高响应效率。下面贴出代码。
//JS写法

<script language="JavaScript">

//动态加载一个js/css文件

function loadjscssfile(filename, filetype){

if (filetype=="js"){

var fileref=document.createElement('script')

fileref.setAttribute("type","text/javascript")

fileref.setAttribute("src",filename)

}

else if (filetype=="css"){

var fileref=document.createElement("link")

fileref.setAttribute("rel","stylesheet")

fileref.setAttribute("type","text/css")

fileref.setAttribute("href",filename)

}

if (typeof fileref!="undefined")

document.getElementsByTagName("head")[].appendChild(fileref)

}

使用示例:

loadjscssfile("myscript.js","js")

loadjscssfile("javascript.PHP","js")

loadjscssfile("mystyle.css","css")

</script>

//jquery加载css
$('#btn').click(function()
{
  $('head').children(':last').attr({
    rel: "stylesheet",
    type: 'text/css',
    href: './style.css',
  });
})
//jquery加载js

$.getScript("index.js");//直接加载

//当加载完成之后需要进行后续操作,可利用callback实现

$.getScript("test.js", function() {
console.log('success')
}); $.getScript()//也可利用done的方式判断js文件是否加载成功 $.getScript("test.js").done(function() {
console.log('success')
});

//动态移除

//移动已经加载过的js/css

function removejscssfile(filename,filetype){

var targetelement=(filetype=="js")? "script" :(filetype=="css")? "link" : "none"

var targetattr=(filetype=="js")?"src" : (filetype=="css")? "href" :"none"

var allsuspects=document.getElementsByTagName(targetelement)

for (var i=allsuspects.length; i>=;i--){

if (allsuspects[i] &&allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(filename)!=-)

  allsuspects[i].parentNode.removeChild(allsuspects[i])

}

}

</script>

使用示例:

removejscssfile("somescript.js","js")

removejscssfile("somestyle.css","css")
替换已经加载的js/css文件,代码如下:

<script language="javascript">

function createjscssfile(filename,filetype){

if (filetype=="js"){

var fileref=document.createElement('script')

fileref.setAttribute("type","text/javascript")

fileref.setAttribute("src",filename)

}

else if (filetype=="css"){

var fileref=document.createElement("link")

fileref.setAttribute("rel","stylesheet")

fileref.setAttribute("type","text/css")

fileref.setAttribute("href",filename)

}

return fileref

} 

function replacejscssfile(oldfilename,newfilename, filetype){

var targetelement=(filetype=="js")?"script" : (filetype=="css")? "link" :"none"

var targetattr=(filetype=="js")?"src" : (filetype=="css")? "href" :"none"

var allsuspects=document.getElementsByTagName(targetelement)

for (var i=allsuspects.length; i>=;i--){

if (allsuspects[i] &&allsuspects[i].getAttribute(targetattr)!=null &&allsuspects[i].getAttribute(targetattr).indexOf(oldfilename)!=-){

  var newelement=createjscssfile(newfilename, filetype)

  allsuspects[i].parentNode.replaceChild(newelement, allsuspects[i])

}

}

}
</script>

---------------------
作者:CG-Jun
来源:CSDN
原文:https://blog.csdn.net/m0_37950366/article/details/70207389
版权声明:本文为博主原创文章,转载请附上博文链接!

动态加载、移除js、css的更多相关文章

  1. 动态加载 移除js file

    动态加载.移除.替换js/css文件 stylesheetjavascriptcssfunctionnull <script language="javascript"> ...

  2. JavaScript动态加载资源【js|css】示例代码

    在开发过程中会用到各种第三方的插件,或者自己写在单独文件中的js方法库或者css样式,在html头部总是需要写一大堆的script和link标签,如果想要自己实现动态的引入资源文件,可以使用开源的re ...

  3. 转:Android Webview 加载外部html时选择加载本地的js,css等资源文件

    原文地址:http://m.blog.csdn.net/blog/qduningning/43196819 在使用WebView加载网页的时候,有一些固定的资源文件如js的jquery包,css,图片 ...

  4. Thymeleaf模板引擎绕过浏览器缓存加载静态资源js,css文件

    浏览器会缓存相同文件名的css样式表或者javascript文件.这给我们调试带来了障碍,好多时候修改的代码不能在浏览器正确显示. 静态常见的加载代码如下: <link rel="st ...

  5. 配置动态加载模块和js分模块打包,生产环境和开发环境公共常量配置

    1. 话不多少 先上代码:  route.js  // 引用模板 分模块编译 const main = r => require.ensure([], () => r(require('. ...

  6. 网站更换服务器出现加载不了js css文件的问题

    原因是 里面加找不到.woff类型,后面把上面注释掉就可以了

  7. jQuery动态加载动画spin.js

    在线演示 本地下载

  8. 动态加载、移除、替换JS和CSS

    //动态加载一个js/css文件 function loadjscssfile(filename, filetype) { if (filetype == "js") { var ...

  9. 用JavaScript动态加载CSS和JS文件

    本文转载自:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/11/14/2248451.html 今天项目中需要用到动态加载 CSS 文件 ...

随机推荐

  1. struts2 自定义异常拦截器配log4j

    log4j.rootLogger = debug,stdout,F log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.app ...

  2. kafka-producer配置

    kafka-producer版本对比 Kafka的producer的API根据版本的不同分为kafka0.8.1.X之前的 kafka.javaapi.producer.Producer.以及之后版本 ...

  3. 让docker容器开机启动

    网上有些文章说,要让docker 的容器自动在开机启动,是写脚本,比如在 rc.local 中写.其实完全没必要这么麻烦,docker 有相关指令,docker run 指令中加入 --restart ...

  4. Fiddler: 如何抓取HTTPS协议的网页

    作者:韦玮  转载请注明出处 Fiddler默认只能抓取HTTP协议的网页,不能抓取HTTPS协议的网页,而我们很多时候,都需要抓HTTPS协议的网页,比如抓淘宝数据等.今天,韦玮老师会为大家讲解如何 ...

  5. Excel--按内容分页打印

    当我们有这样一张表,需要按不同城市分页打印,每页带标题行,可按以下步骤:1.点击城市一列任一单元格,点击“开始”——>“排序和筛选”(升序): 2.点击“数据”-->“分类汇总”: 分类字 ...

  6. Oauth2.0客户端服务端示例

    https://blog.csdn.net/qq_28165595/article/details/80459185 前言前面的理解OAuth2.0认证与客户端授权码模式详解,我们大致了解了Oauth ...

  7. Java Collection - 001 集合的遍历

    import java.util.ArrayList; import java.util.Iterator; import java.util.List; import com.java.domain ...

  8. 【Python】hasattr() getattr() setattr() 使用方法详解

    本文转自 https://www.cnblogs.com/cenyu/p/5713686.html hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回B ...

  9. minIni: A minimal INI file parser

    https://www.compuphase.com/minini.htm https://github.com/compuphase/minIni

  10. Linux操作redis 使用(VMwareWorkstation)

    项目一般都部署到linux上面,记得刚出来的时候,第一家公司 服务器是windows系统,以后公司的项目都放在了linux上面,所以掌握linux的一些基本操作是一个程序员必备的知识,本次记录如何使用 ...