zoukankan      html  css  js  c++  java
  • 动态加载、移除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")[0].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>=0;i--){
    
    if (allsuspects[i] &&allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(filename)!=-1)
    
      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>=0;i--){
    
    if (allsuspects[i] &&allsuspects[i].getAttribute(targetattr)!=null &&allsuspects[i].getAttribute(targetattr).indexOf(oldfilename)!=-1){
    
      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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    Java Sound : generate play sine wave
    Java Sound : audio inputstream from pcm amplitude array
    Silence Removal and End Point Detection MATLAB Code
    Java extract amplitude array from recorded wave
    sqlserver中sp_executesql使用实例(获取动态sql输出结果)
    js字母大小写字母转换
    String.Format数字格式化输出 {0:N2} {0:D2} {0:C2}
    System.Data.SqlClient.SqlError:无法打开备份设备'D:..abc.bak'
    Loadrunner监控windows系统“找不到网络路径”问题解决
    未能加载文件或程序集“System.WEB.DataVisualization, Version=3.5.0.0, Culture=neutral......
  • 原文地址:https://www.cnblogs.com/4job/p/10057429.html
Copyright © 2011-2022 走看看