如何将脚本标签嵌入到 Angular 组件中

杰克

我有一个 Angular/Typescript 网站。我需要嵌入第三方脚本。该脚本生成一个表。

如何在 home.component.html 中显示该表。不是在开始时,也不是在开始时,而是在内部。像这样。

我已经能够嵌入脚本,但它看起来不像脚本正在呈现,所以它只是在源代码中显示它但不呈现表格。

更新

该表现在可以呈现,但只能在 app-root 之外呈现。它应该在 home.component.html 里面。源图像

home.component.ts

import { Component, OnInit, AfterViewInit } from '@angular/core';
import { DOCUMENT } from '@angular/common'

declare var myExtObject: any;

@Component({
  selector: 'app-careers',
  templateUrl: './careers.component.html',
  styleUrls: ['./careers.component.scss']
})

export class CareersComponent implements OnInit {
  private iife: any

  ngOnInit() {
  }

  ngAfterViewInit() {
    this.iife = myExtObject()
  }

}

主页.component.html

<div id="BambooHR">
    <script src="https://xxxxxxx.xxx.com" type="text/javascript"></script>
    <div></div>
</div>

脚本背后的代码如下。我在 external.js 文件中有它。

var myExtObject = function() {

	//add css file to dom so IE8 recognizes it
	document.write('<link href="https://xxx.css" rel="stylesheet" />');

	var divId="BambooHR-ATS";
	var el=document.getElementById(divId);
	if(!el) {
		document.write("<div id=\""+divId+"\"></div>");
	}

	var xmlhttp;
	var ieFlag = 0;
	if (('XDomainRequest' in window && window.XDomainRequest !== null) && document.documentMode < 10) {
		xmlhttp=new XDomainRequest();
		ieFlag = 1;
	} else if (window.XMLHttpRequest) {
		xmlhttp=new XMLHttpRequest();
	} else {
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}

	var embedUrl = "https://xxx.php";

	var departmentId = "0";

	if (departmentId) {
		embedUrl += '?departmentId=' + encodeURIComponent(departmentId);
	}

	document.addEventListener('readystatechange', function(event) {
		if (event.target.readyState === "complete") {
			if (ieFlag == 1) { //needed for IE9 CORS
				xmlhttp.onload = loadd;
				xmlhttp.open("GET",embedUrl);
				xmlhttp.send();

			} else {
				xmlhttp.onreadystatechange=function() {
					if(xmlhttp.readyState==4 && xmlhttp.status==200) {

						var content = xmlhttp.responseText;
						var footerId="BambooHR-Footer";
						var fel=document.getElementById(footerId);

						el=document.getElementById(divId);

						if(el && !fel) {
							content += "<div id="xxx"/></a></div>";
						}

						if(el) el.innerHTML=content;
					}
				}

				xmlhttp.open("GET",embedUrl,true);
				xmlhttp.send();
			}
		}
	});

	function loadd() { //needed for IE9 CORS
		var content = xmlhttp.responseText;
		var footerId="BambooHR-Footer";
		var fel=document.getElementById(footerId);

		el=document.getElementById(divId);

		if(el && !fel) {
			content += "<div id=\"BambooHR-Footer\">Powered by <a href=\"http://www.bamboohr.com\" target=\"_blank\" rel=\"external\"><img src=\"https://resources.bamboohr.com/images/footer-logo.png\" alt=\"BambooHR - HR software\"/></a></div>";
		}
		el.innerHTML=content;
	}
};

阿皮法诺

不要手动插入脚本标签。在您的angular.json, 在scripts部分中导入库

"scripts": [
  "./node_modules/yourtablelibrary/build/yourtablelibrary.min.js"
]

参考:https : //medium.com/@clintpitzak/how-to-use-external-javascript-libraries-in-angular-8-247baacbdccf

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Angular组件中显示HTML Dom / Angular组件?

如何将数据传递到Angular路由组件?

如何在Angular 4中将数据从父组件传递到子组件

在Angular 2中嵌入组件

如何将变量从@Input传递到Angular2组件中的服务>

如何将数据绑定到angular2中的标签

Angular 2如何将组件子组件中的方法发射到组件父类

如何在Angular 4中将值从子组件传递到父组件

如何将Angular应用嵌入到Wordpress页面中?

Angular 7如何将嵌入式JS脚本包含到组件中?

如何将组件导入Angular中的Service类

在Angular中,如何将组件转换为微服务?

在Angular中,当组件不是父/子组件时,如何将值从一个组件传递到另一组件?

Angular中从父组件到子组件的数据共享

在html组件angular中关闭标签

如何将Calandly小部件嵌入到Angular应用中?

Angular:如何将数据从服务绑定到组件,以使服务中的新数据更新组件?

在Dart Angular中,如何将函数传递给组件

我如何将这个脚本嵌入到wordpress中?

Angular 2:如何将子组件绑定到属性

如何将JavaScript重新绑定到angular2组件中的元素?

如何将日历组件插入到 Angular 2 应用程序中?

如何将 React 元素嵌入到组件中?

如何将外部js脚本文件嵌入到react组件中

如何将数据从 HTTP GET API 传递到 angular 中的 mat 对话框组件

如何将内部类 ID 插入到 Angular 8 的 href 链接中?.html 组件

我如何将输入和结果数据显示中的数据 POST 到 Angular 中的组件?

在 Angular 中,如何将变量从父组件公开给子组件?

Angular 11,如何将模板中的新对象绑定到组件