Javascript 下载Angular 2 innerHTML绑定中的脚本

Javascript 下载Angular 2 innerHTML绑定中的脚本,javascript,angularjs,angular,angularjs-bindings,Javascript,Angularjs,Angular,Angularjs Bindings,我正在开发Angular 2应用程序,它在我的应用程序中显示新闻条目。新闻项保存在数据库中,并使用Angular的[innerHTML]绑定加载到模板中 当新闻内容中有嵌入内容(如Tweet)时会出现问题,这需要加载javascript文件(例如//platform.twitter.com/widgets.js)。问题是,即使在解析页面之后,浏览器也不会下载文件 有人知道如何解决这个问题吗? 谢谢 我想如果你有这样的东西,它会下载文件。 因此,当您获得新闻提要项目时,如果您在新闻提要项目上有任何

我正在开发Angular 2应用程序,它在我的应用程序中显示新闻条目。新闻项保存在数据库中,并使用Angular的[innerHTML]绑定加载到模板中

当新闻内容中有嵌入内容(如Tweet)时会出现问题,这需要加载javascript文件(例如//platform.twitter.com/widgets.js)。问题是,即使在解析页面之后,浏览器也不会下载文件

有人知道如何解决这个问题吗?
谢谢

我想如果你有这样的东西,它会下载文件。 因此,当您获得新闻提要项目时,如果您在新闻提要项目上有任何数据,当您可以确定它是否嵌入了twitter时,您可以检查它,然后获取所需的js文件

loadedURLs = {
// to hold a cache so you wont download more than once.
};

this.service.fetchDataFromDB()
.subscribe(data =>{
   if(data.url.indexOf('twitter') != -1 && loadedURLs[data.url] == undefined){
     loadedURLs[fileURL] = fileURL;
     // send the file name you want or need.
     this.downloadJS(JSFileURL);
   }
});
downloadJS(fileURL){
   var script = document.createElement('script');
   script.src = (fileURL);
   document.head.appendChild(script);
}

我想如果你有这样的东西,它会下载文件。 因此,当您获得新闻提要项目时,如果您在新闻提要项目上有任何数据,当您可以确定它是否嵌入了twitter时,您可以检查它,然后获取所需的js文件

loadedURLs = {
// to hold a cache so you wont download more than once.
};

this.service.fetchDataFromDB()
.subscribe(data =>{
   if(data.url.indexOf('twitter') != -1 && loadedURLs[data.url] == undefined){
     loadedURLs[fileURL] = fileURL;
     // send the file name you want or need.
     this.downloadJS(JSFileURL);
   }
});
downloadJS(fileURL){
   var script = document.createElement('script');
   script.src = (fileURL);
   document.head.appendChild(script);
}

对于有兴趣从包含HTML的字符串获取所有外部脚本的用户:

findExternalScriptsInHtmlString(string) {
    var parser = new DOMParser();
    var scripts = parser.parseFromString(string, 'text/html').getElementsByTagName('script');
    var result = [];

    for (var i = 0; i < scripts.length; i++) {
        var src = scripts[i].getAttribute('src');
        if (src.length && result.indexOf(src) === -1) result.push(src);
    }

    return result;
}
findExternalScriptsInHtmlString(字符串){
var parser=新的DOMParser();
var scripts=parser.parseFromString(string,'text/html').getElementsByTagName('script');
var结果=[];
对于(var i=0;i
对于希望从包含HTML的字符串获取所有外部脚本的用户:

findExternalScriptsInHtmlString(string) {
    var parser = new DOMParser();
    var scripts = parser.parseFromString(string, 'text/html').getElementsByTagName('script');
    var result = [];

    for (var i = 0; i < scripts.length; i++) {
        var src = scripts[i].getAttribute('src');
        if (src.length && result.indexOf(src) === -1) result.push(src);
    }

    return result;
}
findExternalScriptsInHtmlString(字符串){
var parser=新的DOMParser();
var scripts=parser.parseFromString(string,'text/html').getElementsByTagName('script');
var结果=[];
对于(var i=0;i
您是如何尝试下载文件的?您是如何尝试下载文件的?谢谢,但是我如何让Angular调用downloadJS函数?我添加了一个片段。谢谢,但是我如何让Angular调用downloadJS函数?我添加了一个片段。