2017-02-22 10 views
0

サービスへのhttpコールで取得する条件に応じて、外部JSファイルを動的にロードしたいとします。角2スクリプトサニタイザの使用方法

私のようにapp.component.html<script>を挿入したい:私はbypassSecurityTrustScriptbypassSecurityTrustHtmlを使用していないどちらも私の作品私のコンポーネントで

<script src="mysource/url"></script> 

、私のスクリプトタグは削除されます:

<div class='container-fluid'> 
    <div class='row'> 
    <div class='col-sm-12 body-content'> 
     <div [innerHTML]="script"></div> 
     <script type="text/javascript" [src] = "src"></script> 
     <router-outlet></router-outlet> 
    </div> 
    </div> 
</div> 


    @Component({ 
    selector: 'app', 
    templateUrl: './app.component.html', 
    styleUrls: ['./app.component.css'] 
}) 
export class AppComponent { 
    public script: any; 
    public src: any; 
    public constructor(private titleService: Title, private sanitizer: DomSanitizer) { 
    let x = '<script>alert("hi")</script>'; 
    this.script = sanitizer.bypassSecurityTrustHtml(x); 
    this.src = sanitizer.bypassSecurityTrustScript('http://www.google.com'); 
    } 

任意のアイデアどのようにすることができますこの文脈で私はDomSanitizerクラスを使用しますか? http://www.example.comスクリプトがからフェッチされるURLです

+0

これを実装できましたか? – talentedandrew

+0

@talentedandrewいいえ私は私のアプローチを変更しました。私はAngular Universalを使用していますが、私はcshtmlビューにロジックを追加することにしました。 – shiva

+0

私も同様の問題に直面していました。それから私はこのライブラリhttps://www.npmjs.com/package/postscribeを使いました。私の場合、私の場合は、私の四角形のv4コンポーネントテンプレートにサードパーティの広告スクリプトをレンダリングしていました。確かにこれをチェックしてください(図書館)を出す。 – talentedandrew

答えて

0
this.src = sanitizer.bypassSecurityTrustResourceUrl('http://www.example.com'); 

+0

app.component.htmlに「

関連する問題