我需要一个在页面加载之前触发一些JavaScript代码的函数。它与document.ready
相反有什么想法吗?
谢谢!
劳伦
答案 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。)