如果我按特定顺序加载其他javascript源,下面的代码将不会调用platform_callback。
<script type="text/javascript" src="//apis.google.com/js/platform.js?onload=platform_callback" async defer></script>
<script>
function platform_callback() {
console.log("callback");
}
</script>
我很难复制这个。。。但是,如果在调用平台之后加载了很多js库(angular、moment、bootstrap),则不会触发onload回调。
下面是一个gif,显示console.log仅在刷新十几次后的一段时间内启动:
https://i.imgur.com/C5FFJhb.gif
此html导致以下问题:
<script src="https://apis.google.com/js/platform.js?onload=platform_callback" async defer></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular-animate.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular-route.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular-sanitize.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js" crossorigin="anonymous"></script>
<script>
function platform_callback() {
console.log("init");
gapi.load('auth2', function() {
console.log("auth2");
});
}
</script>