bypassSecurityTrustHtml和bypassSecurityTrustScript在Angular2中使用JavaScript
我试图通过组件在Angular2文件中执行javascript函数。但我不能让它工作 这就是我的ts文件的样子bypassSecurityTrustHtml和bypassSecurityTrustScript在Angular2中使用JavaScript,javascript,angular,Javascript,Angular,我试图通过组件在Angular2文件中执行javascript函数。但我不能让它工作 这就是我的ts文件的样子 import { Component, OnInit, Input } from '@angular/core'; import {BrowserModule, DomSanitizer} from '@angular/platform-browser' import { JavaScriptService } from './javascript.service'; @Compo
import { Component, OnInit, Input } from '@angular/core';
import {BrowserModule, DomSanitizer} from '@angular/platform-browser'
import { JavaScriptService } from './javascript.service';
@Component({
selector: 'app-javascript',
template: `
<div [innerHtml]="html"></div>
`
})
export class JavaScriptService{
html: any;
constructor(private sanitizer: DomSanitizer) {
this.html = sanitizer.bypassSecurityTrustHtml(`<div><script type="text/javascript"> alert('h');</script></div>`);
}
}
从'@angular/core'导入{Component,OnInit,Input};
从“@angular/platform browser”导入{BrowserModule,DomSanitizer}
从“/javascript.service”导入{JavaScriptService};
@组成部分({
选择器:“应用程序javascript”,
模板:`
`
})
导出类JavaScriptService{
html:任何;
构造函数(专用消毒器:DomSanitizer){
this.html=sanitizer.bypassSecurityTrustHtml(`alert('h');`);
}
}
这就是在浏览器中呈现页面时html的外观(我查看了elemens)
警报(“h”);
我不明白为什么页面加载后警报没有执行
我用bypassSecurityTrustHtml和bypassSecurityTrustScript都试过了,但没有成功。如果有人能解决这个问题,我将不胜感激
谢谢大家! 我以前在您的.ts文件中见过这样做 它将执行您的脚本标记
const fragment=document.createRange();
document.body.appendChild(片段)代码>
即使它能工作,我也会遇到这个问题,SafeValue必须使用[property]=binding:(请参阅)附加到我的页面,所以我正在解决这个问题。AFAIK脚本标记不能使用innerHTML
添加。有关如何添加脚本标记的信息,请参阅。我还需要此方面的帮助。此问题得到解决了吗?
<div ng-reflect-inner-h-t-m-l="<div><script type="text/javascript"> alert('h');</script></div>">
<div><script type="text/javascript"> alert('h');</script></div>
</div>