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



我有一个注入了遗留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>

最新更新