如何动态加载和使用/调用 JavaScript 文件?

2024-03-23

我需要动态加载 JavaScript 文件,然后访问其内容。

File test.js

test = function () {
    var pub = {}
    pub.defult_id = 1;
    return pub;
}()


在这种情况下它有效:

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="/test.js"></script>    
</head>
<body>
    <script type="text/javascript">
        console.log(test.defult_id);
    </script>
</body>
</html>


但我需要动态加载它,这样它就不起作用:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <script type="text/javascript">
        function loadjs(file) {
            var script = document.createElement("script");
            script.type = "application/javascript";
            script.src = file;
            document.body.appendChild(script);
        }
        loadjs('test.js');
        console.log(test.defult_id);
    </script>
</body>
</html>


Error: Uncaught ReferenceError: test is not defined(…)


你可以这样做:

function loadjs(file) {
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src = file;
    script.onload = function(){
        alert("Script is ready!"); 
        console.log(test.defult_id);
    };
    document.body.appendChild(script);
 }

欲了解更多信息,请阅读这篇文章:https://www.nczonline.net/blog/2009/06/23/loading-javascript-without-blocking/ https://www.nczonline.net/blog/2009/06/23/loading-javascript-without-blocking/

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

如何动态加载和使用/调用 JavaScript 文件? 的相关文章

  • 将 Laravel 集合/数组转换为 Javascript 数组

    我想将 Laravel 中的数组分配给 JavaScript 数组 我已经从我的AppServiceProvider和 json decoded 它像 View composer function view users Users all
  • 使用画布元素作为文本区域

    我正在寻找有关如何使用类似于文本区域的画布元素的直接描述 我见过这样的项目Ace http ace ajax org 只是想知道如何像文本区域一样写入该区域 只是纯文本 没有什么花哨的 提前致谢 Ace 曾经是 Mozilla Skywri
  • 在 HTML5 中使用 JS 创建内联 SVG

    我正在使用本地 HTML5 文件 它有在顶部 我在里面放了这样的东西
  • jQuery - 提高处理 XML 时的选择器性能

    我正在处理一个 XML 文件 当使用 XPath 样式选择器选择节点时 该文件的性能非常慢 这是运行特别慢的部分代码 for i 0 i
  • 在 angularjs 模块初始化期间有条件地注入依赖项

    我有一个角度模块 我想有条件地将依赖项注入其中 IE var myapp angular module myapp ngRoute myappcontroller ngGrid I want to include ngGrid only i
  • RequireJS 文本插件和变量连接字符串

    我正在使用 RequireJS 文本插件来加载一些 html 模板 当我将字符串文字传递给 require 函数时 它工作正常 var templateHTML require text templates template name ht
  • 如何在 javascript 或 jquery 中按尺寸对图像进行排序

    如何在 JavaScript 或 jQuery 中按尺寸对图像进行排序 我的代码如下 var imgsrc if document images length lt 1 alert No images to open return for
  • 如何删除从 javascript var 转义的反斜杠?

    我有这个变量 var x div class Which is div class 但是我需要 div class abcdef 我怎样才能 unes cape 这个变量来删除所有转义字符 您可以通过正则表达式将反斜杠后跟引号替换为仅引号
  • AngularJS - 服务、工厂、过滤器等中的依赖注入

    因此 我想在我的 Angular 应用程序中使用一些插件和库 目前 我只是引用这些函数 方法 因为它们是在 99 的应用程序中以完全忽略依赖注入的方式使用的 我有 例如 javascript 库 MomentJS 它处理格式化和验证日期 并
  • 使用 jQuery/JavaScript 将文本框值复制到剪贴板

    我有一个文本框和按钮 如下所示 div class col xs 11 style padding 20px 0 div
  • 更改特定字符串的颜色

    有谁知道如果将特定单词输入文本区域 我如何更改它的颜色 例如 如果用户输入 你好我的朋友 它会动态地将 你好 更改为绿色 在google上花了很多时间 找不到任何相关的东西 谢谢 textareas 的设计目的不是选择性着色
  • 大型应用的回流/布局性能

    我正在使用 GWT 构建一个 HTML 应用程序 其性能总体上是正确的 有时 它会加载 DOM 中的许多对象 并且应用程序会变得很慢 我使用 Chrome 开发者工具分析器来查看时间花在哪里 在 Chrome 下 一旦应用程序被编译 即没有
  • 使用 Socket.IO 时如何访问会话标识符?

    我有一个聊天 我需要管理独特的连接 我四处搜寻 但我找到的解决方案似乎都已被弃用 那么 如何使用 Socket IO 获取套接字的会话 ID 我在用着Node js http en wikipedia org wiki Node js Ex
  • d3力定向布局-链接距离优先

    在 d3 中使用力导向布局 如何使链接距离成为优先事项 同时仍然保持良好的图形布局 如果我指定动态链接距离 但保留默认费用 则我的图形距离会因费用函数而发生一些变形 并且不再是准确的距离 但是 如果我删除电荷 图表将如下所示 任何建议表示赞
  • 如何仅突出显示嵌套表的最里面的表行?

    我有几个嵌套表 我想突出显示鼠标指针下方的最里面的行 我怎样才能做到这一点 一些提示 我使用嵌套表来显示递归表格数据 表可以嵌套 10 层 嵌套正如您所期望的那样 table tr td table tr td table tr td 可能
  • window.open 使用 css 样式

    我想设计我的 window open 目前 我的网页上有一些项目由于解析了某个类而打开 然后在新窗口中打开指定的文本 我想更改字体大小 字体和填充等 这是我的 JavaScript 代码
  • ES6 Reflect API 的好处

    我一直在努力升级一些代码以使用 ES6 语法 我有以下代码行 delete this foo 我的 linter 提出了使用建议 Reflect deleteProperty this foo 您可以找到该方法的文档here https d
  • 将 Angular Web 组件 EventEmitter 监听到 javascript

    我在以下工具的帮助下创建了一个小型网络组件本文 https medium com IMM9O web components with angular d0205c9db08f使用角度元素 其中包括 Input and Output 我能够将
  • R闪亮:使用闪亮的JS从数据表中获取信息

    我想读出所有列名称以及它们在数据表中显示的顺序 由于不同的原因 我无法使用 stateSave 等选项 我对 JS 没有什么把握 但我确信用它可以完成 所以我需要你帮助我 我尝试过类似的代码片段 datatable data callbac
  • React 错误:目标容器不是 DOM 元素

    我刚刚开始使用 React 所以这可能是一个非常简单的错误 但我们开始吧 我的html代码非常简单 load staticfiles

随机推荐

  • R闪亮制作子面板

    是否有一个简单的解决方案可以使 R 中创建的主选项卡面板中的选项卡面板闪亮 以下是我创建主面板的方法 mainPanel tabsetPanel id tabSelected tabPanel Tab1 uiOutput Tab1 tabP
  • 用于数据存储的 Lua 与 XML

    我们中的许多人都被灌输了使用 XML 来存储数据的观念 它的优点和缺点众所周知 我当然不想在这里讨论它们 然而 在我用 C 编写的项目中 我也使用 Lua 我非常惊讶 Lua 能够如此出色地存储和处理数据 然而 Lua 的这一方面却鲜为人知
  • 在UIPickerView而不是UIView中响应touchesBegan

    我有一个 UIPickerView 在不使用时会淡出至 20 alpha 我希望用户能够触摸选择器并使其淡入 如果我在主视图上放置一个 TouchBegan 方法 我就可以让它工作 但这仅在用户触摸视图时才有效 我尝试对 UIPickerV
  • 使用 join 获取嵌套对象数组的 SQL 查询

    摘要 我将从 JSON 模式开始来描述期望 请注意具有嵌套对象数组的角色 我正在寻找一个可以通过单个查询获取它的 智能查询 id 1 first John roles Expectation gt array of objects id 1
  • 使用 WPF WebBrowser 控件时如何抑制脚本错误?

    我有一个 WPF 应用程序 它使用 WPF WebBrowser 控件在平面显示器上向开发人员显示有趣的网页 如新闻源 问题是我偶尔会遇到 HTML 脚本错误 该错误会弹出一条令人讨厌的 IE 错误消息 询问我是否要 停止在此页面上运行脚本
  • 如何在数据表中格式化货币?

    This is a table which display transactions implementes using DataTables https datatables net document ready function var
  • 为什么 html() 执行 JavaScript,而innerHTML 不执行?

    为什么这个会执行
  • 如何在 Xamarin Forms 中显示 ToolBarItem 图标的徽章计数

    它不是关于如何显示通知徽章 也不是关于显示工具栏项目图标 如何在工具栏项目图标上显示徽章计数是一个明显的问题 我正在共享代码以在 XF 内容页面中创建带有图标的 ToolbarItem 在cs文件中 ToolbarItem cartItem
  • 如何使用 python (requests/urllib3) 登录 facebook?

    我正在尝试使用http docs python requests org en latest http docs python requests org en latest 自动登录 Facebook s requests session
  • 如何递归地对特定数组键的所有值求和?

    我有一个像这样的数组 Array 1000 gt Array pv gt 36 1101 gt Array 1102 gt Array pv gt 92 pv gt 38 pv gt 64 如何找到带有键 pv 的所有数组元素的总和 无论它
  • PHP:自引用数组

    有没有办法从数组中引用数组键 这在代码格式中可能更有意义 array array Key1 gt array Value1 Value2 Key2 gt this Key1 我想要的是为了 array Key2 输出与 array Key1
  • 如何优化像素艺术编辑器中的绘制区域

    我有像素艺术创作程序 并且画布上有矩形 它们是一个字段 像素 对于数据量不大 例如 128x128 来说 这是一个很好的解决方案 如果我想在画布上创建 1024x1024 矩形 这个过程会很长 RAM 使用量约为 1 2 GB 之后程序运行
  • 带参数的累积正态分布函数的反函数

    我想在 C 中实现与 matlab icdf 函数等效的功能 我已经找到了这篇有用的文章 https www johndcook com blog cpp phi inverse https www johndcook com blog c
  • Pyspark AWS 凭证

    我正在尝试运行一个 PySpark 脚本 当我在本地计算机上运行它时 它可以正常工作 问题是我想从 S3 获取输入文件 无论我如何尝试 我似乎都无法找到设置 ID 和秘密的位置 我找到了一些有关特定文件的答案 前任 通过 Spark 或更好
  • 如何在 F# 中编写枚举而不显式分配数字文字?

    我在 F 中有一个枚举 如下所示 type Creature SmallCreature 0 MediumCreature 1 GiantCreature 2 HumongousCreature 3 CreatureOfNondescrip
  • 在 R 中将文本框保存为 pdf

    我正在尝试在 R 中创建项目符号类型列表 并希望将其保存为 pdf 格式 这成功地在窗口上打印了项目符号列表 a paste0 Starting portfolio value prettyNum 1000000 big mark scie
  • JPQL (JPA) 如果列表有交集则查找对象

    我有两个类 每个类都有一个标签列表 现在我想找到每一个对象ClassA包含列表中的任何项目ClassB 这可以用 JPQL 实现吗 或者使用单个查询 public class ClassA private List
  • 在 Qt 中解析 HTML 的最佳方法?

    在 Qt 中 我将如何解析充满 BAD html 的页面上的所有 a html 标签 href 属性 我会使用内置的 QtWebKit 不知道它的性能如何 但我认为它应该捕获所有 坏 HTML 就像是 class MyPageLoader
  • Unity:编辑器模式不支持 VRDevice 纸板。请在目标设备上运行

    卡板测试时存在屏幕无法分割的问题 我使用的 goolge sdk 版本为 unity 1 6 和 Unity 5 6 2f1 在模拟器 unity游戏场景 中 游戏场景在玩时不会分裂 控制台显示 编辑器模式不支持 VRDevice card
  • 如何动态加载和使用/调用 JavaScript 文件?

    我需要动态加载 JavaScript 文件 然后访问其内容 File test js test function var pub pub defult id 1 return pub 在这种情况下它有效 但我需要动态加载