Javascript 如何动态加载仅在Angular 7应用程序中提供CDN的第三方库?

Javascript 如何动态加载仅在Angular 7应用程序中提供CDN的第三方库?,javascript,angular,cdn,Javascript,Angular,Cdn,我正试图在typescript文件中强制从CDN下载javascript文件的内容,这样我就可以在正确的生命周期挂钩中使用它,这样我就可以确保只在第一次需要时才下载它 例如,要下载Jquery的Google CDN: 我不想将库src添加到index.html页面,也不想将其添加到angular.json配置文件中,因为我不想在我的应用程序中的许多地方使用该库,所以我不想总是强迫用户下载它 我一直在试验HttpClient.JsonP方法,因为我试图从中请求库的CDN服务器正在强制执行CORS,

我正试图在typescript文件中强制从CDN下载javascript文件的内容,这样我就可以在正确的生命周期挂钩中使用它,这样我就可以确保只在第一次需要时才下载它

例如,要下载Jquery的Google CDN:

我不想将库src添加到index.html页面,也不想将其添加到angular.json配置文件中,因为我不想在我的应用程序中的许多地方使用该库,所以我不想总是强迫用户下载它

我一直在试验HttpClient.JsonP方法,因为我试图从中请求库的CDN服务器正在强制执行CORS,但是,我相信,因为响应不是JSON,而是函数,所以它不起作用

示例代码:

load<T = any>(): Observable<T> {
    return this.http
        .jsonp(
            'https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js',
            'callback'
        ) as Observable<T>;
}
我认为这个错误是有道理的,因为响应不是JSON,也没有像浏览器所期望的那样封装在函数中

我现在正在尝试一种类似的技术,如下所示:


但是我真的不喜欢这个,因为我相信我必须用这个来增加一个全局变量,尽管我还不知道如何增加。

你使用的是什么版本的Angular?@MikeJuneBugCaptain我使用的是Angular 7
"JSONP injected script did not invoke callback."