![](/img/trans.png)
[英]JavaScript in external file is executed before the script tag's onload event
[英]handle external javascript script loaded event before it's executed
我有一个html
页面和一个script
,希望以特定的方式处理:加载后但执行之前。 基本上,我想预加载脚本,但是在满足某些条件时执行。 脚本不依赖于其他脚本,因此我将其async
非阻塞( async
):
<script onload='onScripLoad()' scr='...' async></script>
我想要的只是类似于onload
但在下载脚本之前执行。 可能吗?
这里的问题是,我能够预加载脚本,但无法与应用程序生命周期中的必需事件同步。 onScripLoad
after
脚本加载after
AND
执行after
执行。 我需要的是在执行脚本(推迟执行)时进行控制。
添加更多详细信息,我想预加载脚本并在body
某些元素可用时执行该脚本,但是我无法将该脚本放在该元素之后,因为在这种情况下,该脚本与正在下载的其他一些资源排队head
。 因此,我想将我的脚本放在head
,使其async
,并在下载后仅在特定元素可用时执行(或在执行之前创建该元素)。 我不能使它不异步,因为它是我无法控制的脚本,也不希望我的整个页面都依赖它。
您可以只在开头部分加载外部脚本,将逻辑包装在函数中,然后在稍后的条件中调用该函数:
externalscript.js:
function externalFunction(data) {
console.log(data);
}
指数:
<head>
<script src='externalscript.js' async></script>
</head>
<body>
<script>
var body_data = 'test';
if (timing-driven-condition) {
externalFunction(body_data);
}
</script>
</body>
函数externalFunction
将首先被加载,但是直到在条件内被调用时才使用,从而使您可以控制何时执行。
希望这可以帮助! :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.