簡體   English   中英

需要document.ready對面的jQuery

[英]Need jQuery opposite to document.ready

我需要一個可以在頁面加載之前觸發一些JavaScript代碼的函數。 與document.ready相反

有任何想法嗎?

謝謝!

洛朗

<html>
    <head>
       <script type="text/javascript">
              //code here will run when encountered...
              //to ensure jQuery not loaded you can do this:
              if ( typeof jQuery  == undefined ){
                  //jQuery be like not there.
              }
       </script>

        <title>My Page</title>
    </head>
    <body>
    </body>
</html>

您可以直接在引用任何其他腳本之前直接運行代碼(如果您不處理異步任務,那應該沒問題)。

您可以使用IOC或啟動腳本來加載庫,這應該很容易。 在像AngularJS這樣的框架中,您本機具有此功能,但是請查看RequireJS例如。

使用ServiceWorker怎么樣? 同樣,這取決於您要實現的目標。

jQuery沒有內置任何功能,但是您可以編寫一個插件來實現。 只需將代碼放在頁面頂部

(function($){
    $.fn.notReady = function(func){
         return func();
    }
})(jQuery);

$(document).notReady(function(){
     alert("Hello World!");
});

您也可以使用Vanilla JS框架而不是jQuery。 它是跨平台的,並且內置了此功能。

jQuery $ .holdReady()方法,該方法保存釋放 jQuery ready事件的執行。

例:

    $.holdReady(true);
    // your javascript code before the ready event
    $.holdReady(false);

來自jQuery文檔

$ .holdReady()方法允許調用者延遲jQuery的ready事件。 動態腳本加載程序通常會使用此高級功能,即使DOM可能已就緒,它們也希望在允許ready事件發生之前先加載jQuery插件等其他JavaScript。 必須在文檔的<head> ,例如在jQuery腳本標記之后的<head>立即調用此方法。 在ready事件已經觸發后調用此方法將無效。

要延遲就緒事件,請首先調用$ .holdReady(true) 當應釋放就緒事件以執行時,請調用$ .holdReady(false) 請注意,可以在ready事件中放置多個保留,每個$ .holdReady(true)調用保留一個。 在釋放具有相應數量的$ .holdReady(false)的所有保留並滿足正常文檔就緒條件之前,ready事件實際上不會觸發。 (請參閱准備好以獲取更多信息。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM