繁体   English   中英

在受信任的 Angular 注入的 HTML 中注册 jQuery 事件

[英]Register jQuery event in trusted Angular injected HTML

我有一个注入了旧 HTML 的 Angular 应用程序。 我需要绕过清理,因为它会从元素中剥离样式。

<div class="legacy" [innerHTML]="sanitizer.bypassSecurityTrustHtml(html)"></div>

但是后来我无法为之前注入的 HTML 中的链接注册 jQuery 事件:

  setTimeout(() => {         
      $('.legacy a:not([href^="http"])').off('click').on('click', event => {
        event.preventDefault();
        alert('success');
      });          
    });

在浏览器中调试时,我可以看到在链接元素上调用了 jQuery 事件注册,但除非我删除消毒剂旁路,否则不会在元素上注册任何事件。

如果我将清理从模板移动到代码,它会起作用。

this.html = this.sanitizer.bypassSecurityTrustHtml(html);
<div class="legacy" [innerHTML]="html"></div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM