The following snippet is taken from an example in Google API doc. The intriguing part of this snippet is that onload
event handler in the two <script async>
in <head>
are defined later in the <body>
. Does the onload
event in the async script only fire after the <body>
are parsed? Does any spec provide such guarantee? Or this code is only correct under the implied assumption that these two particular scripts in <head>
takes a long time to fetch and execute?
<!DOCTYPE html>
<html>
<head>
<script async defer src="https://apis.google.com/js/api.js" onload="gapiLoad()"></script>
<script async defer src="https://accounts.google.com/gsi/client" onload="gisInit()"></script>
</head>
<body>
<script>
function gapiLoad() {
// do something
}
function gisInit() {
// do something
}
// there are other stuffs...
</script>
</body>
</html>