首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在执行外部javascript脚本之前处理加载的事件

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

Stack Overflow用户
提问于 2017-03-16 09:41:41
回答 1查看 610关注 0票数 1

我有一个html页面和一个script,我希望以特定的方式处理它们:在加载之后,但在执行之前。基本上,我想要预先加载脚本,但当某些条件满足时执行。脚本不依赖于其他脚本,因此我将其设为非阻塞(async):

代码语言:javascript
运行
复制
<script onload='onScripLoad()' scr='...' async></script>

我想要的是类似于onload的东西,但它是在下载的脚本之前执行的。有可能吗?

这里的问题是,我可以预加载脚本,但无法与我的应用程序生命周期中所需的事件同步。onScripLoad is executed after脚本已加载AND after它已执行。我需要的是有控制的时候脚本被执行(推迟执行)。

添加更多细节时,我想要预加载脚本并在body中有某些元素可用时执行它,但我不能将脚本直接放在该元素之后,因为在这种情况下,它会与head中正在下载的其他一些资源一起排队。因此,我希望将我的脚本放在head中,将其设置为async,并在下载后仅在特定元素可用时执行(或在执行之前创建该元素)。我不能让它不是异步的,因为这是一个我无法控制的脚本,我不希望我的整个页面依赖于它。

EN

回答 1

Stack Overflow用户

发布于 2017-03-16 09:58:00

您只需在head部分加载外部脚本,将逻辑包装在一个函数中,然后在以后的某个条件中调用该函数:

externalscript.js:

代码语言:javascript
运行
复制
function externalFunction(data) {
  console.log(data);
}

指数:

代码语言:javascript
运行
复制
<head>
  <script src='externalscript.js' async></script>
</head>
<body>
  <script>
  var body_data = 'test';
  if (timing-driven-condition) {
    externalFunction(body_data);
  }
  </script>
</body>

函数externalFunction将首先被加载,但是直到它在条件中被调用时才会被使用,这让您可以控制它何时执行。

希望这能有所帮助!:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42823843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档