检查外部js脚本是否已经在组件Angular 2中
Check if external js script already in component Angular 2
我正在尝试在组件中动态加载js脚本。
我有一个使用reCAPTCHA的联系人组件,问题是每次用户访问该组件时,都会加载外部脚本。
export class ContactCmp {
captchaReady = false;
constructor() {
}
ngOnInit() {
if(){ //check if script is already loaded
this.loadScript('https://www.google.com/recaptcha/api.js', this.captchaLoaded);
}
else{
console.log("captcha is already loaded.")
}
}
captchaLoaded(){
console.log("Captcha loaded");
this.captchaReady = true;
}
loadScript(url, callback)
{
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
script.onreadystatechange = callback;
script.onload = callback;
head.appendChild(script);
}
}
如何检查脚本是否已加载?
使用
document.querySelector('script[src="https://www.google.com/recaptcha/api.js"]');
测试脚本标记是否已经存在
或检查window.__google_recaptcha_client
的存在
相关文章:
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- Typescript编译器错误,Angular 1.5组件应为分号
- OnsenUI、Angular和在警报对话框后刷新UI组件
- 向Angular 2组件发出传递值
- 如何正确处理依赖ViewChild和Angular 2中可观察到的数据的组件上的更改检测
- Angular 2,在没有直接关系的两个组件之间共享一个对象
- Angular 2-如何从ControlGroup访问子组件
- Angular 1.5组件中的Angular Bootstrap Modal$uibModalInstance未知提供程
- 如何获取子组件的内容Angular 2中的子组件
- Angular 2 - 从父组件的“第一个子”组件到“第二个子”组件的路由
- 如何创建一个组件,我可以设置在 Angular 2 中的属性中获取 URL 数据
- Angular 2中组件的自定义用户模板
- 是否可以将服务注入Angular 1.5组件's templateUrl属性
- 如何在使用ui路由器时构造angular.js应用程序组件
- Angular 2:是相对于当前组件的styleUrl
- 如何使用Angular 1.5组件将属性求值为字符串,这是一个自定义函数
- 检查外部js脚本是否已经在组件Angular 2中
- 日期组件Angular 2
- 登录后重新加载导航组件重定向到另一个组件 Angular 2
- 将输出从子组件发送到父组件 - Angular 2