原生 JavaScript 中的 jQuery.getScript 替代方案

2024-04-12

我正在尝试动态加载 JS 脚本,但不能使用 jQuery。

我检查了 jQuery 源代码以了解如何获取脚本 http://api.jquery.com/jQuery.getScript/已实现,以便我可以使用该方法使用本机 JS 加载脚本。但是,getScript 只调用 jQuery.get()

而且我还没有找到get方法的实现位置。

所以我的问题是,

使用本机 JavaScript 实现我自己的 getScript 方法的可靠方法是什么?

Thanks!


这是具有回调功能的 jQuery getScript 替代方案:

function getScript(source, callback) {
    var script = document.createElement('script');
    var prior = document.getElementsByTagName('script')[0];
    script.async = 1;

    script.onload = script.onreadystatechange = function( _, isAbort ) {
        if(isAbort || !script.readyState || /loaded|complete/.test(script.readyState) ) {
            script.onload = script.onreadystatechange = null;
            script = undefined;

            if(!isAbort && callback) setTimeout(callback, 0);
        }
    };

    script.src = source;
    prior.parentNode.insertBefore(script, prior);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

原生 JavaScript 中的 jQuery.getScript 替代方案 的相关文章

随机推荐

  • CSS - 根据宽度设置高度

    我可以在 CSS 中使用宽度设置高度吗 这就是我现在所拥有的 width 22 5 height width 2 25 background fff url images image bg png background repeat no
  • ASP.NET 有没有更好的方法来查找其他控件中的控件?

    我目前在 ascx 控件中有一个下拉菜单 我需要从同一页面上的另一个 ascx 后面的代码中 找到 它 它的值用作 ascx 2 上 ObjectDataSource 的参数 我目前正在使用这段丑陋的代码 它有效 但我意识到如果控制顺序发生
  • 从 AnyObject 转换为 CGColor?没有错误或警告

    你好 StackOverflow 自从升级到 swift 2 0 以来 我遇到了一个奇怪的问题 我正在尝试设置边框颜色 所以我正在写self layer borderColor borderColor as CGColor其中 border
  • JComboBox 警告阻止在 Eclipse 中打开设计页面

    好的 我正在使用 eclipse 及其 GUI 编辑器 我有一个像这样的字符串 public static String blah Blah Blah Blah Blah 和一个像这样的 JComboBox JComboBox comboB
  • Kafka中如何实现强一致性?

    尝试了解 Kafka 中的一致性维护 请找出场景并帮助理解 Number of partition 2 Replication factor 3 Number of broker in the cluster 4 那么 为了实现强一致性 需
  • 比较日期 < 或 DateDiff 哪个更好?

    哪个被认为更好 select from TableA where productDate lt 12 9 2013 or select from TableA where DATEDIFF day productDate 12 9 2013
  • 使用 drupal_get_form() 传递参数

    这是我使用钩子的自定义模块 假设如果我想将参数传递给 custom1 default form 函数调用 我应该如何传递参数
  • 方案:为什么内部定义比外部定义快?

    我尝试运行下面的程序 define odd internal x define even x if zero x t odd internal sub1 x if zero x f even sub1 x define odd extern
  • printf 类型提升和符号扩展

    我对 printf 和一般情况下类型提升如何发生感到困惑 我尝试了以下代码 unsigned char uc 255 signed char sc 128 printf unsigned char value d n uc printf s
  • 从 {AER} 的 ivreg() 获取第一阶段结果

    有没有办法从中提取第一阶段的结果ivreg 我想看看在不运行单独回归的情况下计算结果如何 这里有一些代码 其中包括 IV 以及我如何手动估计第一阶段以及通过进入第二阶段进行双重检查 library AER y lt rnorm 100 5
  • 反向传播实现问题

    我应该做什么 我有一个黑白图像 100x100px 我应该训练一个反向传播 http en wikipedia org wiki Backpropagation神经网络与该图像 输入是图像的 x y 坐标 从 0 到 99 输出是 1 白色
  • 使用tensorflow-gpu获得可重现的结果

    使用 Tensorflow 处理项目 但是 我似乎无法重现我的结果 我尝试过设置图形级别种子 numpy 随机种子甚至操作级别种子 然而 它仍然无法重现 在 Google 搜索中 大多数人都将罪魁祸首归咎于 reduce sum 函数 因为
  • AS3:将变量转换为动态类型

    是否可以动态地将变量转换为类型 其中类型将是类型的变量Class 考虑以下因素 无效 var myClass Class MyClass var myInstance myClass new myClass 对于上下文 我正在 Flex 4
  • 使用 Swift 以编程方式闪烁屏幕(在“屏幕截图”上)

    为了从这里转换 Objective C 示例 如何以编程方式闪烁屏幕 https stackoverflow com questions 5254508 how to flash screen programmatically我写了以下代码
  • 撤消核心数据更改的操作名称

    我正在寻找一种内置 或易于实现 的方法来让核心数据撤消 重做操作名称读起来像 撤消编辑名字 而不是像它们那样简单地 撤消 或 重做 默认情况下 我有一个核心数据应用程序 并且正在使用它NSUndoManager作为我的 Windows 撤消
  • Spring RedisTemplate:8次调用后方法键挂起

    我使用 Spring RedisTemplate spring data redis 1 7 1 与 Redis 进行通信 我需要通过正则表达式获取然后删除键 例如 context user1 我用的方法 RedisTemplate key
  • Dagger - 在不同组件上获取相同实例

    我遇到了类似的问题this https stackoverflow com questions 40745279 dagger 2 provide same instance between multiple component with
  • 如何用UML表示通信协议?

    在我的 UML 模型中 我有一个系统及其相互通信的子组件 例如 我有一台计算机和一个遥控机器人 它们通过蓝牙进行通信 目前图中的流程类似于 计算机 触发 遥控车 的 setVelocity 函数 在这一点上 我想通过说以下的话来完善沟通 计
  • 使用 Powershell 在单独的单独行上列出完全路径文件名?

    如果我执行 Get ChildItem ext recurse 输出由一系列目录部分组成 后跟由所述目录部分分隔的每个匹配文件的一列或多列信息 有类似 Unix find 命令的东西吗 其中每个匹配的文件名及其完整的相对路径都出现在一行中
  • 原生 JavaScript 中的 jQuery.getScript 替代方案

    我正在尝试动态加载 JS 脚本 但不能使用 jQuery 我检查了 jQuery 源代码以了解如何获取脚本 http api jquery com jQuery getScript 已实现 以便我可以使用该方法使用本机 JS 加载脚本 但是