Angular 将脚本动态添加到<;头>;棱角分明
我已经检查了一些示例,演示了如何在Angular中动态添加带有URL的脚本 但是我想在Angular 将脚本动态添加到<;头>;棱角分明,angular,typescript,Angular,Typescript,我已经检查了一些示例,演示了如何在Angular中动态添加带有URL的脚本 但是我想在 !函数(f,b,e,v,n,t,s){if(f.fbq)返回;n=f.fbq=function(){n.callMethod? n、 callMethod.apply(n,参数):n.queue.push(参数)};如果(!f._fbq)f._fbq=n; n、 push=n;n.load=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=
!函数(f,b,e,v,n,t,s){if(f.fbq)返回;n=f.fbq=function(){n.callMethod?
n、 callMethod.apply(n,参数):n.queue.push(参数)};如果(!f._fbq)f._fbq=n;
n、 push=n;n.load=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t、 src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(窗口,
文档,'script','https://connect.facebook.net/en_US/fbevents.js');
fbq('init','');
fbq(“轨迹”、“页面视图”);
或
什么
或者两者兼而有之
有什么想法和例子吗?这里是我在项目中实际使用的例子:
<head>
<div *ngIf="dati">
<title>{{dati.data.field_meta_tag.description}}</title>
</div>
</head>
{{dati.data.field_meta_tag.description}
为此,您需要使用rjxs运算符并将响应带到您的api,在我的示例中,我现在仅将其用于标题,但您可以将其用于所有标题。您可以创建一个函数,该函数从文档中获取(第一个)头标记,并添加一个创建的脚本标记(使用您在
innerHTML
中指定的代码)在头标记的第一个子项之前:
export function addScriptsToHead() {
const head = document.getElementsByTagName('head')[0];
const script = document.createElement('script');
script.innerHTML = 'your code';
head.insertBefore(script, head.firstChild);
}
您只需通过传递标记名,使用
getElementByTagName()
方法获取元素的引用即可。之后,您必须创建一个脚本变量,然后使用innerHTML
属性向该变量插入代码。最后将脚本变量插入head
请尝试以下代码
const head = document.getElementsByTagName('head')[0];
const script = document.createElement('script');
script.innerHTML = 'your code';
head.insertBefore(script, head.firstChild);
如果您允许自己安装一个新库,请使用
@bespunky/angular zen
附带的HeadService
。它提供了对head元素的安全且强类型的访问
您的组件/服务如下所示:
从'@angular/core'导入{Component,OnInit};
从'@bespunky/angular-zen/core'导入{HeadService};
@组成部分({
选择器:“zen head service demo”,
templateUrl:'./head service demo.component.html',
样式URL:['./头服务demo.component.css']
})
导出类HeadServiceDemoComponent实现OnInit
{
构造函数(私有头:HeadService){}
恩戈尼尼特()
{
this.head.addElement('script',/*配置对象或配置函数*/);
}
}
||
您不能将其添加到
index.html
中吗?这是否回答了您的问题@不,我是从API得到的
export function addScriptsToHead() {
const head = document.getElementsByTagName('head')[0];
const script = document.createElement('script');
script.innerHTML = 'your code';
head.insertBefore(script, head.firstChild);
}
const head = document.getElementsByTagName('head')[0];
const script = document.createElement('script');
script.innerHTML = 'your code';
head.insertBefore(script, head.firstChild);