繁体   English   中英

在执行之前处理外部javascript脚本加载事件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM