我正在编写一个脚本,该脚本旨在嵌入到 3rd 方网站上以向它们添加功能。我最近删除了我相当混乱的自定义加载程序代码,并开始用 requirejs 替换它。可以选择为我加载的库之一(取决于传入的一些参数)是 jQuery。
这很好用,直到我的脚本包含在 jQuery 已经存在的页面上,在这种情况下,似乎发生的是一些插件在中途加载,requirejs 在页面的版本上加载 jQuery,并且插件立即中断。
要求客户重写他们的页面只是为了使用这个脚本是不可能的,所以我想做的是检测jQuery是否已经加载,如果是,跳过通过requirejs加载它,只使用已经加载的一个(当他们使用更旧版本的 jQuery 时,这可能会让我遇到奇怪的边缘情况和错误,但我没有太多选择)。
我想我会写一个新模块,首先查看是否加载了 jQuery,如果是,则导出 jQuery 对象,如果不是,则加载它,然后执行导出。但是,我似乎受到了阻碍,因为模块的定义函数似乎需要同步才能工作,所以我不能去加载另一个异步脚本,然后将导出填充到 requirejs 中。
我在文档中遗漏了什么吗?我正在尝试的事情是不可能的吗?