我有一个 html
页面和一个 script
,我想以特定方式处理它们:在加载之后但执行之前。基本上我想预加载脚本,但在满足某些条件时执行。脚本不依赖于其他脚本,因此我将其设置为非阻塞(异步
):
<script onload='onScripLoad()' scr='...' async></script>
我想要的只是类似于 onload
的东西,但它在下载的脚本之前执行。可能吗?
这里的问题是我能够预加载脚本,但无法与应用程序生命周期中所需的事件同步。 onScripLoad
是在脚本加载之后
并且执行之后
执行的。我需要的是在执行脚本时进行控制(推迟执行)。
添加更多详细信息我想预加载脚本并在 body
中存在某些元素时执行它,但我无法将脚本放在该元素之后,因为在这种情况下它会排队head
中正在下载一些其他资源。因此,我想将脚本放在 head
中,使其异步
,下载后仅在特定元素可用时执行(或者在执行之前创建该元素)。我无法使其不异步,因为它是一个我无法控制的脚本,并且不希望我的整个页面依赖于它。
最佳答案
您可以在 head 部分加载外部脚本,将逻辑包装在函数内,然后稍后在条件内调用该函数:
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
将首先加载,但只有在条件内调用时才会使用,这样您就可以控制它的执行时间。
希望这有帮助! :)
关于javascript - 在执行之前处理外部 javascript 脚本加载事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42823843/