美文网首页
window.onload封装插件

window.onload封装插件

作者: 小玉_50aa | 来源:发表于2017-10-18 17:36 被阅读0次

    window.onload 只能绑定一条指令

    window.onload = function(){
                     prepareGallery();
                }
    

    接下来封装一个函数,如果在代码变的复杂的时候,无论打算在页面加载完毕时执行多少个函数,只要多写一条语句就可以了。

    //封装一个公共调用方法
    function addLoadEvent(func){
        var oldonload = window.onload;
        if(typeof window.onload != 'function'){
            window.onload= func;
        }else{
            window.onload =function (){
            oldonload();
            func();
              }
              }
        }
          //只需要一条即可
        addLoadEvent(prepareGallery);           
    

    整体实例

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>windowonload封装</title>
            <style type="text/css">
                body{
                    font-family:  "Helvetical","Arial","serif";
                    background-color:#ccc;
                    color:#333;
                    margin: 1em 10%;
                }
                a{
                    font-weight: bold;
                    text-decoration: none;
                }
                img{
                    display:block;
                    clear: both;
                }
                li{
                    float:left;
                    padding:1em;
                    list-style:none;
                }
            </style>
        </head>
        <body>
            ![](image/IMG_5030.JPG)
            <p id="description">hello</p>
            
            <ul id="imagegallery">
                <li><a href="image/01.png" title="this is one">red</a></li>
                <li><a href="image/02.png" tilte="a is tow">cooffe</a></li>
                <li><a href="image/IMG_5030.JPG" title ="this is img">block</a></li>
            </ul>
            <script type="text/javascript">
                function showPic(e){
                    var soure = e.getAttribute('href');
                    var placeholder = document.getElementById('placeholder');
                    placeholder.setAttribute("src",soure);
                }
                
                //childNodes 获取一个任何元素的所有子元素
    //          function countChirldNodes(){
    //              var body_elemnt = document.getElementsByTagName('body')[0];
                    //获取body全体子元素的长度
    //              alert(body_elemnt.childNodes.length);
    //          }
                
                function countChirldNodes(){
                    //获取body
                    var body_elemnt = document.getElementsByTagName('body')[0];
                    console.log(body_elemnt);
                    alert(body_elemnt.nodeType);
                }
                
                //nodeValue
                function coutnodeValue(e){
                    // 将获取的title保存到新创建变量
                    var text =e.getAttribute('title');
                    //获取p的ID 并保存到新创建的变量
                    var description = document.getElementById("description");
                    //点击时,将title的值给到P的text (firstChild是第一个,lastChild是最后一个)
                    description.firstChild.nodeValue =text ;
                }
                
    //          window.onload = function(){
    //               prepareGallery();
    //          }
                
                        
                
                //优化方式将html的onclick放到js中调用
                function prepareGallery(){
                    //判断是否支持getElementsByTagName
                    if(!document.getElementsByTagName) return false;
                    //判断是否支持getElementById
                    if(!document.getElementById) return false;
                    //判断点击的值是否与获取的相同
                    if(!document.getElementById('imagegallery')) return false;
                    var gllery =document.getElementById('imagegallery');
                    var links = gllery.getElementsByTagName('a');
                    for(var i=0;i<links.length;i++){
                        links[i].onclick=function(){
                            showPic(this);
                            return false;
                        }
                    }
                }
                
                //封装一个公共调用方法
                function addLoadEvent(func){
                    var oldonload = window.onload;
                    if(typeof window.onload != 'function'){
                        window.onload= func;
                    }else{
                        window.onload =function (){
                            oldonload();
                            func();
                        }
                    }
                }
                
                addLoadEvent(prepareGallery);   
            </script>
        </body>
    </html>
    
    

    相关文章

      网友评论

          本文标题:window.onload封装插件

          本文链接:https://www.haomeiwen.com/subject/lyyeuxtx.html