【发布时间】:2016-02-21 19:04:30
【问题描述】:
我必须加载一个对显示正文并不重要的第三方脚本(为简单起见,它在“.red”div 上添加了红色背景)。
<script src="redify.js" async defer></script>
脚本加载后我需要执行function myRedify(){ $(".red").redify(); }。
脚本很大,需要很长时间(比如 3 秒)才能加载,但一旦完成,我需要看到我的 .red div 变成红色。
<script src="redify.js" async defer onload="myRedify()"></script>
这是推荐的方法吗?
备注
-
redify.js是我无法修改的第三方脚本 - 我不介意 div 不是立即变红,而是在延迟之后(加载脚本时,3 秒 - 好)
【问题讨论】:
-
脚本加载后会立即执行,所以你可以把
myPostFunction()放在脚本末尾。 -
@r3wt,OP正在询问推荐方式!
-
公平地说,他问这是否是推荐的方式,而不是上面的代码是否可行:)
-
@ins0 这是唯一可能的方法,除非您在 javascript 中以编程方式创建脚本并执行
script.onload = function(){...,或者正如 @Halcyon 所说,只需在脚本底部调用您的函数。 -
如果您的脚本 B 依赖于脚本 A,请不要使脚本 A 异步。那会招来麻烦。始终以同步方式加载它们。
标签: javascript html asynchronous