Angular 5 - 使用管道清理 HTML

2023-11-21

当我收到警告时:

“警告:清理 HTML 会删除一些内容”

我做了一些研究,看到人们使用下面的管道或类似于下面的管道

import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';

@Pipe({ name: 'sanitizeHtml' })
export class SanitizeHtmlPipe implements PipeTransform {

    constructor(private _sanitizer: DomSanitizer) { }

    transform(v: string): SafeHtml {
        return this._sanitizer.bypassSecurityTrustHtml(v);
    }
}

不幸的是,即使我像这样实现管道,我仍然遇到相同的错误:

<span [innerHTML]="specialist.blocks[0].paragraph.html | sanitizeHtml"></span>
<p [innerHTML]="package.fields.remarks | sanitizeHtml"></p>
<li [innerHTML]="package.fields.name | sanitizeHtml"></li>

所以我想知道我是否错误地实现了管道,或者还有其他原因导致它不起作用?

Edit:

的例子specialist.blocks[0].paragraph.html:

" \n姓名专家\n

随机文本

\n"

的例子package.fields.remarks:

“安排: 3 nachten incl. ontbijt en 2 greenfees p.p. met keuze uit North en South\n- 免费 dagelijkse toegang tot de spa (1 uur 哈曼、桑拿、zwembad、水力按摩)”

的例子package.fields.name:

“Shortbreak 3 nachten2 人/高级双人床/LO,包括高尔夫”

在 Firefox 和 Chrome 中获取警告


如下例如果您尝试打印{}在 html Angular 中将其视为表达式并会给出错误,因此您可以得到以下选项, 我们有 2 个 HTML 清理选项,

  1. 使用管道
import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';

@Pipe({ name: 'sanitizeHtml' })
export class SanitizeHtmlPipe implements PipeTransform {

  constructor(private _sanitizer: DomSanitizer) { }

  transform(value: string): SafeHtml {
    return this._sanitizer.bypassSecurityTrustHtml(value);
  }

}

在组件中,您可以将其用作{{variable | santizeHtml }}

  1. 使用组件, 作为如下的属性绑定, 在 .ts 文件中声明 html
const allowedChars = '@ # $ % ^ & * ( ) _ - ., ? < > { } [ ] ! +';

并在模板中使用它,

<span [innerHTML]="allowedChars"></span>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 5 - 使用管道清理 HTML 的相关文章

随机推荐

  • Java 将 int 转换为 hex 并再次转换回来

    我有以下代码 int Val 32768 String Hex Integer toHexString Val 这相当于ffff8000 int FirstAttempt Integer parseInt Hex 16 Error Inva
  • 获取堆栈中上一层函数的 __file__

    我发现我经常使用这种模式 os path join os path dirname file file path 所以我决定在一个包含许多这样的小实用程序的文件中放入一个函数 def filepath in cwd file path re
  • 防止列表视图丢失所选项目

    我目前正在 winform c 中的列表视图上工作 每次我点击列表视图上的空白区域时 所选项目丢失 列表视图控件有一个HideSelection默认为的属性True 做了False就可以开始了 在某些情况下这就足够了
  • 将class文件转换为dex文件

    android中如何将class文件转换为dex文件 有什么办法吗 使用 dex 选项调用 dx 命令 如下所示 dx dex output
  • 将新的 subversion 远程添加到现有的 Git 存储库中

    我有一个完全跟踪远程 SVN 存储库的 git 存储库 现在我需要添加一个新分支 该分支将跟踪完全不同的 SVN 存储库中的目录 那可能吗 It is git svn init只编辑默认的 svn 远程 你必须编辑配置文件 Look in
  • 如何在android中保存(切换)按钮状态?

    我在我的 andorid 应用程序中使用 SWITCH 如 android 切换按钮 而不是普通按钮 该代码在启用和禁用开关时工作正常 但我想存储开关的状态 假设我启用开关并关闭我的应用程序 后台代码将正常运行 但开关状态将更改为禁用 每次
  • iOS 开发:如何缩短代码中的 URL?

    我正在构建一个 iPhone 应用程序 我希望包含允许用户登录 Twitter 并在 Twitter 上发布指向我的应用程序的链接的功能 然而 为了做到这一点 该推文需要缩短我在 App Store 上的应用程序的 URL 如何编写代码来缩
  • 跟踪目录产品展示次数 - 增强型电子商务 Google Analytics

    我正在尝试使用以下方法在电子商务目录页面上实现产品印象谷歌分析增强电子商务追踪 按照规范 应该像这样实现它 ga create UA XXXXX Y ga require ec ga ec addImpression id P12345 P
  • 通过 SOCKS5 代理连接到 .NET Web 服务

    我正在尝试通过 SOCKS5 代理连接到 Web 服务 目前 我的app config如下
  • 如何在 Firefox 中让

    在这里 这个问题已经针对 IE 和 Chrome 得到了解答 但所提出的解决方案似乎不适用于 Firefox 16 45 以及可能之间的所有版本 基本上 建议的解决方案如下 table th td border 1px solid blac
  • 使用用户脚本捕获页面 xmlhttp 请求

    我有一个用户脚本 适用于 chrome 和 FF 它向页面添加了重要的功能 但最近被破坏了 因为开发人员向页面添加了一些 AJAX 我想修改脚本来监听页面 xmlhttp 请求 以便我可以根据 JSON 格式动态更新我添加的内容respon
  • 3D CSS 变换,Firefox 中的锯齿状边缘

    如同 css 变换 chrome 中的锯齿状边缘 同样的情况也发生在 Firefox 的 3D 变换上 例如 http jsfiddle net 78d8K 5 Firefox 这次 backface visibility没有帮助 任何想法
  • Python 中的迭代器节省内存吗?

    我不太明白Python中迭代器是如何拥有内存的 gt gt gt l1 1 2 3 4 5 6 gt gt gt l2 2 3 4 5 6 7 gt gt gt iz izip l1 l2 我们仍然需要O min l1 l2 内存 因为我们
  • 如何检查Kafka Consumer是否准备好

    我将 Kafka 提交策略设置为最新 但缺少前几条消息 如果我在开始向输入主题发送消息之前休息 20 秒 那么一切都会按预期进行 我不确定问题是否在于消费者花费很长时间进行分区重新平衡 有没有办法在开始轮询之前知道消费者是否准备好 您可以使
  • 在 WPF 中运行 Flash

    我正在尝试运行一个 swf在我的 WPF 应用程序中的文件中 我创建了一个html页面 其中我引用了我的 swf文件使用object标签 然后加载它html我的页面Main Window 我的 xaml 看起来像
  • 如何防止用户使用检查元素来启用禁用的元素?

    我有一个按钮如下
  • 如何将附加内容保存到我的 UIManagedDocument 文件包中?

    我在破译方面遇到了很多困难Apple 的文档UIManagedDocument 具体有以下方法 id additionalContentForURL NSURL absoluteURL error NSError error BOOL re
  • 防止XSS攻击,仍然使用Html.Raw

    我有 CMS 系统 我使用 CK 编辑器输入数据 现在如果用户输入然后 CKEditor 完成了公平的工作并正确编码并通过 lt script gt alert 39 This is a bad script data 39 lt scri
  • 检测到无效的映射模式:/**/swagger-ui/**

    我正在使用 springdoc openapi ui 作为 Spring Boot API 文档并面临以下问题 我已添加所有必要的配置 如下 Maven 依赖
  • Angular 5 - 使用管道清理 HTML

    当我收到警告时 警告 清理 HTML 会删除一些内容 我做了一些研究 看到人们使用下面的管道或类似于下面的管道 import Pipe PipeTransform from angular core import DomSanitizer