Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Angular 2和Google Custom Search. Angular2剥离html标记大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试将Google自定义搜索添加到我的角度2应用程序中.
当我将它放入 jsfiddle时,使用自定义搜索中的代码可以正常工作,但是当插入到我的组件中时,我遇到了让它工作的问题.

问题似乎是,当插入脚本的代码运行时,html标记< gcse:search>被剥夺了它的gcse:成为< search>的一部分我想那个运行的脚本找不到任何可以处理的元素.

@H_868_6@my.component.html基本上是:

<gcse:search></gcse:search>

在My.component.html.ts中我有一个实现ngOnInit的函数

ngOnInit(){
    var cx = '016820916711928902111:qw0kgpuhihm';
    var gcse = document.createElement('script');
    gcse.type = 'text/javascript';
    gcse.async = true;
    gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(gcse,s);
}

解决方法

这不是一个很好的解决方案,但我通过传递< gcse:search>来实现它.使用DomSanitizationservice的bypassSecurityTrustHtml标记到容器div的InnerHTML,而不是将其存在.

@H_868_6@my.component.html现在看起来像:

<div class="google-media-search" [innerHTML]="gcsesearch"></div>

和My.component.ts包含以下内容

import {DomSanitizationservice,SafeHtml} from '@angular/platform-browser';

...

constructor(
    private sanitizer: DomSanitizationservice,...
){}

gcsesearch: SafeHtml;

ngOnInit() {
    this.gcsesearch = this.sanitizer.bypassSecurityTrustHtml("<gcse:search></gcse:search>");

    var cx = '016820916711928902111:qw0kgpuhihm';
    var gcse = document.createElement('script');
    gcse.type = 'text/javascript';
    gcse.async = true;
    gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(gcse,s);
}

大佬总结

以上是大佬教程为你收集整理的Angular 2和Google Custom Search. Angular2剥离html标记全部内容,希望文章能够帮你解决Angular 2和Google Custom Search. Angular2剥离html标记所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。