动态加载、移除js、css
本文简单介绍动态加载、移除、替换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的更多相关文章
- 动态加载 移除js file
动态加载.移除.替换js/css文件 stylesheetjavascriptcssfunctionnull <script language="javascript"> ...
- JavaScript动态加载资源【js|css】示例代码
在开发过程中会用到各种第三方的插件,或者自己写在单独文件中的js方法库或者css样式,在html头部总是需要写一大堆的script和link标签,如果想要自己实现动态的引入资源文件,可以使用开源的re ...
- 转:Android Webview 加载外部html时选择加载本地的js,css等资源文件
原文地址:http://m.blog.csdn.net/blog/qduningning/43196819 在使用WebView加载网页的时候,有一些固定的资源文件如js的jquery包,css,图片 ...
- Thymeleaf模板引擎绕过浏览器缓存加载静态资源js,css文件
浏览器会缓存相同文件名的css样式表或者javascript文件.这给我们调试带来了障碍,好多时候修改的代码不能在浏览器正确显示. 静态常见的加载代码如下: <link rel="st ...
- 配置动态加载模块和js分模块打包,生产环境和开发环境公共常量配置
1. 话不多少 先上代码: route.js // 引用模板 分模块编译 const main = r => require.ensure([], () => r(require('. ...
- 网站更换服务器出现加载不了js css文件的问题
原因是 里面加找不到.woff类型,后面把上面注释掉就可以了
- jQuery动态加载动画spin.js
在线演示 本地下载
- 动态加载、移除、替换JS和CSS
//动态加载一个js/css文件 function loadjscssfile(filename, filetype) { if (filetype == "js") { var ...
- 用JavaScript动态加载CSS和JS文件
本文转载自:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/11/14/2248451.html 今天项目中需要用到动态加载 CSS 文件 ...
随机推荐
- Linux shell脚本学习
1.cgmod +x ./文件 获取执行权限,使脚本具有执行权限 2. ./name.sh 执行脚本 ./为当前目录 直接使用name.sh系统会去PATH里面找name.sh,而PATH里只有/ ...
- Android 异步下载
package com.example.demo1; import java.io.File; import java.io.FileOutputStream; import java.io.IOEx ...
- Redis使用规范
突出强调部分 [强制]key名不要包含特殊字符,如空格.换行.单双引号以及其他转义字符 [强制]拒绝bigkey(防止网卡流量.慢查询) [强制]控制key的生命周期,redis不是垃圾桶 [强制]技 ...
- 第三章 jQuery总结 参考文本
jQuery jQuery是javascript的一个函数库,非常方便,非常主流 利用jQuery开发步骤: 1导入jQuery库 2在$(function(){})的{}中编写jQuery代码 ①j ...
- 集群中节点(Node)与单机数据库的区别
集群中节点(Node)与单机数据库的区别: 区别项 集群中节点(Node) 单机数据库 只能使用0号数据库 是 都可以使用
- python3.6 内置函数
python内置函数 # encoding: utf-8 # module builtins # from (built-in) # by generator 1.145 ""&q ...
- Docker镜像常用命令
镜像(image)是Docker三大核心概念中最重要的,是运行容器的前提. Docker运行容器前需要本地存在对应的镜像,如果镜像没保存在本地,Docker会尝试先从默认镜像仓库下载(默认使用Dock ...
- [UE4]Safe Zone:安全区域
一.在做移动开发的时候,为了避免被手机上的硬件元素挡住界面,就可以使用Safe Zone控件,如下图所示的棕色区域就是Apple IphoneX的课被挡住界面的区域:上面的是Iphone的喇叭位置,下 ...
- 【Linux】【Jenkins】编译过程中遇到ERROR: Failed to parse POMs的解决方案
自动化构建的时候报错,网搜查询说是maven的jenkinks配置问题导致的.修改系统工具配置的maven配置就可以了 Started by user XX Building in workspace ...
- django之 使用views.py里面的函数对表进行增删改查 内容(models.py中表的创建、views.py中函数的使用,基于对象的跨表查询)
models之对于表的创建有以下几种: 一对一:ForeignKey("Author",unique=True), OneToOneField("Author" ...