[英]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.