我需要将脚本插入到一个类似于此项的角度项目中。使用角度2+操作带有JS的DOM以运行脚本
<script type="text/javascript" src="https://s3.tradingview.com/external-
embedding/embed-widget-events.js">
{
"width": "510",
"height": "600",
"importanceFilter": "-1,0,1"
}
</script>
显然,不能将它粘贴到模板中,因为NG会清理脚本标记,什么都不会发生。所以我有一个操纵DOM的方法,看起来像这样。
insertScript() {
var element = document.getElementById("myCal");
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = "https://s3.tradingview.com/external-embedding/embed-widget-events.js";
script.innerHTML = '{"width": "510","height": "600","importanceFilter": "-1,0,1"}';
element.appendChild(script);
console.log(element);
}
现在,我的角度与消毒这样做,我们没有得到成过程后运行ngAfterViewInit()方法。脚本被插入,控制台输出显示它在div处,你可以检查看到它,但没有任何反应!
我在项目外的普通html上下文中检查了脚本,它完美地工作。
不知道从这里搬到哪里真的,任何建议将非常感激。谢谢。
看来,该脚本可能会绑定到事件发生在脚本实际上在Angular中初始化之前,例如onload。 –