zoukankan      html  css  js  c++  java
  • javascript异步延时载入及推断是否已载入js/css文件

    <html>
    <head>
    <script type="text/javascript">
    /**=========================================**
     | 异步延时载入js/css文件
     | @example loadasync("http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js");
     | @author liuensong@gmail.com
     | @param string url js/css链接地址
     | @return 新生成element对象/null
     **=========================================**/
    function loadasync(url){
        var elt=null, head=null, type=null;
        if(url){
            head = document.getElementsByTagName("head")[0];
            switch(url.split(".").pop()){
                case "css":
                    elt = document.createElement("link");
                    elt.rel = "stylesheet";
                    elt.href = url;
                    break;
                case "js":
                    elt = document.createElement("script");
                    elt.type = "text/javascript";
                    elt.src = url;
                    break;
                default:
                    //something...
            }
            if(elt!=null && (typeof elt)=="object"){
                head.appendChild(elt);
            }
        }
        return elt;
    }
    /**=========================================**
     | 推断js/css文件是否已载入
     | @example isload("jquery.min.js");
     | @author liuensong@gmail.com
     | @param string fname js/css文件名称
     | @return bool true/false
     **=========================================**/
    function isload(fname){
        var isload = false;
        var tags = {"js":"script", "css":"link"};
        var tagname = tags[fname.split(".").pop()];
        if(tagname != undefined){
            var elts = document.getElementsByTagName(tagname);
            for(i in elts){
                if((elts[i].href && elts[i].href.toString().indexOf(fname)!="-1") || 
                    (elts[i].src && elts[i].src.toString().indexOf(fname)!="-1")){
                    isload = true;
                }
            }
        }
        return isload;
    }
    
    //console.debug(loadasync("http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"));
    //console.debug(isload("jquery.min.js"));
    </script>
    </head>
    <body>
        <a href="javascript:;" onclick="loadasync('http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js');">loadasync</a>
        <a href="javascript:;" onclick="isload('jquery.min.js');">isload</a>
    </body>
    </html>

  • 相关阅读:
    简单的冒泡排序算法(java)
    寻找两个数组中的公共元素Java程序代码
    利用快速排序求两集合交集
    一种简单的吉布斯采样modify中应用
    递归生成小于某个数的所有集合
    卡拉曼算法简答程序
    模态对话框退出DoModal过程中需注意的陷阱
    是否可以使用空对象指针调用成员函数及访问成员变量
    windows c++如何使窗口动态改变位置
    windows的滚动条使用
  • 原文地址:https://www.cnblogs.com/blfshiye/p/3790893.html
Copyright © 2011-2022 走看看