1. 程式人生 > >js中load與onload的區別

js中load與onload的區別

在寫互動的時候,載入函式使onload還是load呢?糾結下,百度下,谷歌下。。。。。

趁機整理以防遺忘!!

且js中window.onload(function)等價於jquery中$(window).onload(function)

一:window.load這個應該只是表明事件方法,但並未執行,比如hover、click表示事件,但它並未執行,必須用上hover、onclick他才會執行

在頁面載入渲染的時候通常會有一個Loading效果,這時就可以用它了:

JS:

              $(window).load(function(){
                $(".loadingicon").addClass("loader-chanage");
                $(".loadingicon").fadeOut(300,function(){
                  $(".loadingicon").remove();
                  $(".maker").show().animate({"right":"0"},500);
                });
              })
            
$(window).load(function)頁面當中的圖片和其他資源載入完成之後才會執行;

但是js中window.onload(function)中的這個方法可能會在某些資源(如圖片)未載入完全就執行;

二:window.onload 這個表示載入完頁面所有東西以後才執行,在頁面只允許出現一個onload函式,因為它可編函式個數只有一個:

JS:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>demo float</title>
        
    </head>
    <body>
        <script type="text/javascript">
            window.onload = function(){   alert("這是1");};
            window.onload = function(){   alert("這是2");};
        </script>
    </body>
</html>
執行結果:

三:說完以上還有一個Jquery的$(document).ready(function),網頁中的所有DOM結構繪製完畢後就執行,可能DOM元素關聯的內容沒有載入完,例如圖片以及設定的相關高度寬度等,這時可以考慮jquery中的load方法規避;另外$(document).ready(function)可編寫函式不限,如:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>demo float</title>
        <script type="text/javascript" src="http://static.ruilife.net/static/js/jquery-1.9.1.min.js"></script>
    </head>
    <body>
        <script type="text/javascript">
            $(document).ready(function(){     console.log("這是1");});
            $(document).ready(function(){     console.log("這是2");});
        </script>
    </body>
</html>
執行結果:

最後總結一下:

js:window.onload頁面一執行就執行該函式,執行該函式時,可能頁面中的圖片還沒有載入完成!


jquery: $(window).load()頁面中的圖片或其它東西載入完成之後,執行該函式。

呼叫load方法的完整格式是:load( url, [data], [callback] )引數分別url地址、檔案型別(php、html等)、回撥函式,也支援選擇器載入load("test.html #內容id名")