You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HTML中如何在动态加载script脚本的前后分别执行指定函数?

动态加载脚本前后执行自定义函数的实现方案

你原来通过jQueryhtml()方法插入script标签的写法无法监听脚本的加载状态,我们可以改用原生动态创建script元素的方式实现需求,不需要行内代码,也无需新增服务端文件:

// 脚本加载前执行前置逻辑
showSpinner();

// 创建script元素
const myScript = document.createElement('script');
myScript.src = 'foo.js';

// 监听脚本加载且执行完成事件
myScript.addEventListener('load', () => {
  hideSpinner();
});

// 可选:监听加载失败事件,避免spinner一直展示
myScript.addEventListener('error', () => {
  hideSpinner();
  // 可自定义加载失败的提示逻辑
});

// 插入DOM后才会正式发起脚本加载请求
document.body.appendChild(myScript);

如果你习惯使用jQuery,也可以用以下简化写法:

showSpinner();
$('<script>')
  .attr('src', 'foo.js')
  .on('load error', hideSpinner)
  .appendTo('body');

实现说明

  • showSpinner()在脚本插入DOM之前执行,完全符合「加载前执行」的要求
  • script元素的load事件触发时机就是脚本下载完成且执行完毕的时机,刚好对应后置执行hideSpinner()的需求
  • 全程没有使用行内事件属性,也不需要对foo.js做任何修改,符合你的限制条件

内容的提问来源于stack exchange,提问作者rahul Kushwaha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 17:15:02