需要jQuery与document.ready相反

时间:2014-01-07 18:58:46

标签: javascript jquery

我需要一个在页面加载之前触发一些JavaScript代码的函数。它与document.ready

相反

有什么想法吗?

谢谢!

劳伦

4 个答案:

答案 0 :(得分:1)

<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>

答案 1 :(得分:0)

您可以在引用任何其他脚本之前直接运行代码(如果您没有处理异步任务,那么它应该没问题。)

您可以使用IOC或启动脚本来加载库,这应该很容易。在像AngularJS这样的框架中,你可以原生地使用它,但例如检查RequireJS

如何使用ServiceWorker?同样,这取决于你想要实现的目标。

答案 2 :(得分:0)

jQuery中没有内置任何内容,但您可以编写一个插件来执行此操作。代码必须放在页面顶部

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

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

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

答案 3 :(得分:0)

jQuery $.holdReady() 方法,持有发布执行jQuery的ready事件。

示例:

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

来自jQuery文档

$。holdReady()方法允许调用者延迟jQuery的ready事件。这个高级功能通常由动态脚本加载器使用,它希望在允许就绪事件发生之前加载其他JavaScript(如jQuery插件),即使DOM可能已准备就绪。必须在文档的早期调用此方法,例如在jQuery脚本标记之后的<head>中。在ready事件已经触发后调用此方法将不起作用。

要延迟就绪事件,请先调用 $。holdReady(true)。当应该释放ready事件以执行时,调用 $。holdReady(false)。请注意,可以在就绪事件上放置多个保留,每个 $。holdReady(true)调用一个保留。 ready事件实际上不会触发,直到所有保持已释放相应数量的 $。holdReady(false)调用并且满足正常的文档就绪条件。 (有关详细信息,请参阅ready。)