javascript - AMD 模块 - 在这个例子中它在哪里加载?
问题描述
我有一个复杂的情况,涉及从不同来源加载脚本,但为了理解我的问题,我认为如果我问一个关于我不太熟悉的 AMD 模块的简单问题会更容易。
在使用 AMD 模块的站点上,有一个可用的定义函数。如果我尝试定义和加载这样的模块会发生什么:
define([], () => { return { thisIsMyTest: true } })
我怎么知道可以访问我刚刚定义的那个模块?
我尝试在require._defined中查找
但我看不到它(我也可能错过它,因为我不确定要寻找什么名字)。
想要访问该对象的脚本不是与 AMD 兼容的脚本,但我可以控制这方面,所以我很乐意为它编写代码。
现在为了更清楚地说明问题,我有一个加载到站点上的脚本(我无法控制),我的脚本远程加载另一个外部脚本(我无法控制)。在正常情况下,这个外部脚本将自己暴露为 Window 对象上的一个变量,但是它支持 AMD 模块,并且该站点使用 AMD,所以在这种情况下,这个外部脚本使用定义加载方法,我不知道如何访问它。
更新:
这是加载我的外部库的代码片段:
const libScript = document.createElement('script');
libScript.type = 'text/javascript';
libScript.src = '//some/3rdparty/lib.js'; // source
libScript.onload = () => {
// Use the library that normally exists on window.Lib
// However libScript in this site loads using AMD
// and window.Lib doesn't exist for sites that use AMD
// Other non AMD sites work fine.
};
document.head.appendChild(libScript);
解决方案
推荐阅读
- php - 从 PHP 中的目录和文本文档导入数据
- python - InternalError: (pymysql.err.InternalError) 使用 sqlalchemy 插入数据时
- python - 如何让这个程序更详细,并在我玩完后告诉我胜率?
- database - Opensips avp_db_query 无法比较空值
- laravel - 通过 $id 更新数据,我想使用另一个模型对象作为控制器函数参数并在 Laravel 中重命名该参数
- javascript - 如何在 JavaScript 中创建乘法表
- python - 如何乘以向量之类的单词列表?
- android - 使用带线程的相机
- c++ - C++ 中有没有办法在既不调用也不提供模板参数的情况下引用函数模板?
- oop - 同时使用 OOP 和函数编程范式