同步动态加载 JavaScript

2023-12-12

我正在使用模块模式,我想做的一件事是动态包含一个外部 JavaScript 文件,执行该文件,然后在return { }我的模块。

我不知道如何轻松做到这一点。是否有执行伪同步外部脚本加载的标准方法?

function myModule() {
    var tag = document.createElement("script");
    tag.type = "text/javascript";
    tag.src = "http://some/script.js";
    document.getElementsByTagName('head')[0].appendChild(tag);

    //something should go here to ensure file is loaded before return is executed

    return {
        external: externalVariable 
    }
}

只有一种方法可以同步加载和执行脚本资源,那就是使用同步 XHR

这是如何执行此操作的示例

// get some kind of XMLHttpRequest
var xhrObj = createXMLHTTPObject();
// open and send a synchronous request
xhrObj.open('GET', "script.js", false);
xhrObj.send('');
// add the returned content to a newly created script tag
var se = document.createElement('script');
se.type = "text/javascript";
se.text = xhrObj.responseText;
document.getElementsByTagName('head')[0].appendChild(se);

但您通常不应该使用同步请求,因为这会阻止其他一切。 但话虽这么说,当然在某些情况下这是合适的。

我可能会使用 onload 处理程序将包含函数重构为异步模式。

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

同步动态加载 JavaScript 的相关文章

  • Angular UI 模式的范围问题

    我无法理解 使用角度 UI 模式的范围 虽然这里不是很明显 但我已经正确设置了模块和所有内容 据我所知 但这些代码示例尤其是我发现错误的地方 index html 其中重要部分 div class btn group div
  • 如何阻止直接访问我的 JavaScript 文件?

    我使用 Minify 来缩小并缓存所有脚本请求 我只希望我的用户能够访问 JavaScript 文件的缩小版本 缩小位于www example com min我的脚本位于www example com scripts 如何阻止直接访问doc
  • Angular.js:如何从无序列表中获取 orderBy 或过滤器来工作?

    尝试根据价格和评级 在返回的对象中 进行排序 我宁愿用 ng click 和 li 来代替使用选择菜单 有没有办法做到这一点 我环顾四周 这是我能想到的最接近的 ul class restaurant filter li i class i
  • 使用 Angular 指令禁用文本选择

    我正在学习 JavaScript 和 AngularJS 我想使用 Angular Directive 禁用文本选择 我有该函数的 JavaScript 代码 function clearSelection if document sele
  • .push() 将多个对象放入 JavaScript 数组中返回“未定义”

    当我将项目添加到beats数组然后console log用户时 我得到了数组中正确的项目数 但是当我检查 length 时 我总是得到 1 尝试调用索引总是会给我 未定义 如下所示 Tom beats 1 我想我错过了一些明显的东西 但这让
  • 在版本 4.4.6 中禁用 ckeditor 上下文菜单

    我在 Rails4 项目中使用 ckeditor 我尝试了 ckeditor gem 和 ckeditor rails gem 来提供 ckeditor 库 这里有多个帖子 人们希望删除 ckeditor 上下文菜单 以便可以显示本机浏览器
  • 导航栏下拉菜单(折叠)在 Bootstrap 5 中不起作用

    我在尝试使用以下命令创建响应式菜单或下拉按钮时遇到问题Bootstrap 5一切似乎都正常 导航图标和下拉图标出现 但它不起作用 当我单击nav图标或dropdown按钮 无dropdown menu apears 我想特别提到的是 我还包
  • 如何使用 Greasemonkey 监视静态 HTML 页面的更改?使用哈希?

    我希望我的 Greasemonkey 脚本仅在其访问的静态页面具有与以前完全相同的内容时运行 现在我可以设置一个包含该页面哈希的变量 我正在寻找一种动态散列页面的方法 以便我可以将我的散列与生成的散列进行比较 关于如何即时实现散列的任何想法
  • javascript 选择自定义光标 (svg)

    我正在动态地将光标更改为悬停时的本地 svg element on mouseover function this css cursor url svgs pointer svg 9 30 auto 工作正常 但我想选择该 svg 来操纵其
  • mongodb 聚合 - 累积字段的不同组值

    如果我有Player表格文件 name String score Int 我有Group文档 其中组代表玩家列表 groupName String players ObjectID 玩家可以属于多个组 我想做一个聚合Player文档 按以下
  • 如何始终将焦点保持在文本框中

    我创建了一个包含两个 div 的 HTML 页面 左侧的 div 页面的 90 是 ajax 结果的目标 右侧的 div 页面的 10 包含一个文本框 该页面的想法是在文本框中输入零件编号 通过条形码扫描仪 并显示与该零件编号匹配的绘图 显
  • 如何计算特定字符在字符串中出现的次数

    我正在尝试创建一个函数来查看数组中的任何字符是否在字符串中 如果是 有多少个 我尝试计算每一种模式 但是太多了 我尝试使用 Python 中的 in 运算符的替代方案 但效果不佳 function calc fit element var
  • 使用 Google 日历源时如何禁用 FullCalendar 中的活动链接?

    我正在使用 FullCalendar 库从 Google 日历加载日历中的事件 不幸的是 事件添加到日历后 它们是可点击的 当您点击该活动时 您会自动重定向到 Google 日历页面以查看该特定活动 或者如果您有足够的访问权限 则可以直接对
  • LeafleteachLayer函数不会迭代所有Layer

    使用 GeoJSON 数据数组创建一些标记 getJSON GetLocationsServlet function data L geoJSON data onEachFeature onEachFeature addTo mymap G
  • 用于选择特定 div 中具有特定类的锚元素的 jQuery 选择器是什么

    我有一些这样的代码 我想选择每个 a 带有类的标签status在 div 中foo div a class status a div 你可以这样做 foo find status a
  • Google Maps API (v3) 添加/更新标记

    编辑 它现在可以工作 但如果用户不允许或没有基于位置的服务 则不会加载 请参阅 jsfiddle 示例接受的答案评论 我已经浏览了一些教程和问题 但我无法安静地理解正在发生的事情 或者在这种情况下 没有发生 当用户单击链接时 我正在加载地图
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • 什么是 WKWebView 中的 WKErrorDomain 错误 4

    fatal error LPWebView encounters an error Error Domain WKErrorDomain Code 4 A JavaScript exception occurred UserInfo 0x7
  • 将数组从 jquery ajax 传递到代码后面

    我必须将二维数组传递给在asp net网页代码后面编写的页面方法我有一个变量objList作为二维数组 我使用以下代码来实现此目的 但没有成功 并且未调用页面方法 脚本语言 function BindTable objList ajax u
  • 如何通过索引访问 JSON 对象中的字段

    我知道这不是最好的方法 但我别无选择 我必须通过索引访问 JSONObject 中的项目 访问对象的标准方法是只写this objectName or this objectName 我还找到了一种获取 json 对象内所有字段的方法 fo

随机推荐

  • 在 Tensorflow 中使用大型数据集

    我想用大数据集训练 CNN 目前 我将所有数据加载到 tf constant 中 然后在 tf Session 中使用小批量大小循环遍历它 这对于数据集的一小部分来说效果很好 但是当我增加输入大小时 我收到错误 ValueError Can
  • Jenkins Pipelines:为什么 CPS Global Lib 未加载?

    我正在按照教程管道库插件 我创建了一个包含以下文件的存储库 D Test groovy src vars helloWorld groovy helloWorld groovy 包含 def call name echo Hello wor
  • PHP 需要递归反转数组

    我需要递归地反转一个具有许多级别子数组的巨大数组 并且我需要保留所有键 其中一些是 int 键 一些是 string 键 有人可以帮助我吗 也许有一个使用 array reverse 的例子 另外 使用 array reverse 是执行此
  • 如何用PHP构建n层Web架构?

    我正在处理 3 层架构的 PHP 网站 现在我需要重新设计它以支持分布式 n 层架构 经过长时间的研究 我得出了这个解决方案 业务逻辑应该分为表示层和纯业务逻辑层 以允许 n 层架构 用户界面 表示层 b 逻辑和数据层 我决定仅使用 进行演
  • SoftConsole 4.0“错误指令”汇编器

    使用 MicroSemi SoftConsole 4 0 尝试编译并运行 FreeRTOS 演示项目 我遇到了错误 错误指令 每行代码 基本上 由于某种原因 整个文件没有被组装 我的控制台如下所示 Building file FreeRTO
  • Clojure:从映射创建记录时确保数据完整性?

    我正在学习 Clojure 并享受它 但发现 Records 中的不一致让我困惑 为什么默认映射构造函数 map gt Whatever 在创建新记录时不检查数据完整性 例如 user gt defrecord Person first n
  • 为什么Powershell要组合数组的数组?

    我在 Powershell 脚本中使用数组的数组 但是 有时 我的数组的数组实际上只包含一个数组 由于某种原因 Powershell 不断用一个数组替换包含一个数组的数组 我不明白 我以前使用过的其他脚本 编码语言都没有这样做过 例如 这是
  • Android API 23 删除的包

    org apache http 的最佳替代品是什么 因为他们在 Android API Differences Report 中这么说 删除了 API 23 中的软件包 org apache commons logging org apac
  • 在 Visual Studio Code 中是否有在同一组内移动选项卡的快捷方式?

    我无法找到将活动选项卡移动到同一组内 而不是移动到其他组中 的快捷方式 这将允许更改该组中选项卡的顺序 Move Editor Left Ctrl Shift PageUp Move Editor Right Ctrl Shift Page
  • 安卓屏幕分辨率

    我正在开发一个分辨率为 320x240 的 Android 应用程序 我想使用同一个应用程序来获得更高的分辨率是否可能 或者我必须为每个分辨率设计 UI 按照此链接中的指南 缩放您的应用程序以支持不同的屏幕分辨率 http develope
  • Keras减肥

    我的模型有两个输出层 年龄和性别预测层 我想为每个输出层的损失分配不同的权重值 我有以下代码行来执行此操作 model compile loss losses mean squared error losses categorical cr
  • 为什么 FormsAuthentication 的 requireSSL 属性默认为 false!

    注意 这不是与 RequireSSL 属性相关的 ASP NET MVC 问题 那是完全不同的 只是名字相同 ASP NET Forms 身份验证具有需要SSL属性要求 ASP NET 成员资格的身份验证 cookie 只能通过 SSL 发
  • Delegate.Invoke 和 Delegate() 之间的区别

    delegate void DelegateTest DelegateTest delTest 打电话有什么区别delTest Invoke and delTest 两者都会在当前线程上执行委托 对吗 The delTest form 是一
  • 如何使用决策者终止 Spring Batch Split Flow 中的步骤

    我在 Spring Batch 中遇到了以下设计缺陷 步骤必须具有 Next 属性 除非它是最后一个步骤或拆分流的最后一个步骤 Decider 块必须处理 Decider 返回的所有情况 因此 在 Split Flow 中 最后一个 Ste
  • 捆绑了依赖项的 JavaFX jar

    我刚刚提出了一个关于使用javafxpackager制作JavaFX jar的问题 你可以看看here 我的问题是我无法在清单中包含类路径 好吧 当我等待答案时 我尝试了maven antrun plugin反而 它工作得很好 我可以使用依
  • 如何获取struts标签中的JSP scriptlet值

    这是我的代码 如果我执行以下操作 我将不会获得该值
  • 管道“cd”或“popd”输出会阻止更改目录吗?

    我明白 自从 为命令启动一个新进程after管道 任何形式的 shell 命令cmd cd newdir where cmd不更改当前工作目录 将保持原始进程的工作目录不变 更不用说这有点愚蠢了 因为cd不从 stdin 读取输入 但是 在
  • Google Apps 脚本按钮:我可以分配未附加到工作表的“全局”脚本吗?

    我有一个脚本 想将其分配给多个不同电子表格上的按钮 如果我在电子表格上创建一个按钮并引用存储在 Google 驱动器上另一个父文件夹中的脚本 我会收到错误Script function myScript could not be found
  • @autoreleasepool 没有 ARC?

    我是 Xcode 4 2 的新手 还没有完全熟悉 ARC 然而 我确实读到 autoreleasepool 取代了自动释放池的手动使用 并在幕后做了一些特殊的魔法来与 ARC 很好地配合 然而 当我在 Xcode 4 2 中启动一个新项目时
  • 同步动态加载 JavaScript

    我正在使用模块模式 我想做的一件事是动态包含一个外部 JavaScript 文件 执行该文件 然后在return 我的模块 我不知道如何轻松做到这一点 是否有执行伪同步外部脚本加载的标准方法 function myModule var ta