2017-02-28 47 views
0

我正在使用在完成站点加载后调用的事件。所以我使用onload()JavaScript事件 - 正在加载页面还是之前?

有什么办法可以在网站加载之前或期间调用我的函数吗?

我将不胜感激! 谢谢!

+1

只要把它放在脚本标签。 –

+0

而我该如何调用我的功能? – Jan

+1

将一个带有函数调用的脚本标记放在头部。但这取决于功能。在onload之前还有DOMContentLoaded。 – dfsq

回答

1
<html> 
    <head> 
    <title>My title</title> 
    <script> 
     var x = 2; 
     function timesTwo(num){ 
     return num * 2; 
     } 
     console.log(timesTwo(x)); 
    </script> 
    </head> 
    <body> 
    <h1>Hello World</h1> 
    </body> 
</html> 

这样,你的JavaScript代码被解释和体所呈现的网站之前执行。请记住,如果您使用这种方法并执行一些需要一些时间的JS,则网站显示时间将会延迟相同的数量。

0

如果您想尽可能早地调用某些内容,请将其放置在<head>元素开头的脚本标记中。但是,您不能保证已加载任何库或已加载任何页面。如果你想尽快做点什么,并且正在使用jQuery,请使用$(function() { yourFunctionHere() })。如果你不使用jQuery,使用DOMContentLoaded事件

0

您可能会在'readystate'事件中侦听'DOMContent'事件之前的事情。不要忘记把这个片段放在标签中。

<html> 
 
<head> 
 
<script> 
 
document.addEventListener('DOMContentLoaded', function() { 
 
    console.log('DOM content loaded'); 
 
}; 
 
document.addEventListener('readystatechange', function() { 
 
    console.log('[Ready state is]', document.readystate); 
 
    if (document.readystate != 'complete') { 
 
     console.log('You can do something here'); 
 
    } 
 
}; 
 
</script> 
 
<body> 
 
</body> 
 
</html>

输出可以是:

[Ready state is] interactive 
You can do something here 
DOM content loaded 
[Ready state is] complete 

希望它能帮助。

相关问题