了解 Dart 1.11 的新appendHTML清理

2023-11-29

我刚刚升级到 Dart 1.11,我不太明白发生了什么.appendHTML()。我有一个非常大的项目,使用 dart 和.appendHTML()经常使用。我已经在这个应用程序上工作了一年多了,但现在没有任何效果了。 :/

我的控制台看起来像这样:

Removing disallowed attribute <DIV style="width: 100%; text-align: right;">
Removing disallowed attribute <DIV style="height: 2em;">
Removing disallowed attribute <DIV style="height: 0.6em;">
Removing disallowed attribute <DIV style="height: 2em;">
Removing disallowed attribute <DIV style="height: 1em;">
Removing disallowed attribute <DIV style="text-align: justify;">
Removing disallowed attribute <DIV style="height: 1em;">
Removing disallowed attribute <DIV style="height: 0.6em;">
Removing disallowed attribute <SPAN style="color: #0d4b63; font-size: 1.6em;">

大多数时候我使用创建元素new Element()和设置样式使用.style....但有时这是没有必要的,将 HTML 作为字符串附加只是更快、更好阅读。

内联样式在清理时被删除的原因是什么?我可以自己做NodeTreeSanitizer正如这里提到的:appendHtml() 不会附加完整的 HTML - Dart

但这对我来说似乎不是一个很好的解决方案,因为我想这种情况发生是有原因的。

我使用了 Über Simple Webapp 模板,只是添加了这行代码:

querySelector('#output').appendHtml('<div style="height: 2em; background: red;">Test</div>');

并且样式刚刚被删除:

Removing disallowed attribute <DIV style="height: 2em; background: red;">

但对我来说它确实看起来像有效的 HTML。 :/

有人可以向我解释一下这里发生了什么以及为什么以及如何让我的项目再次运行。

多谢!

EDIT:

svg 元素也被删除:

Removing disallowed element <g>
Removing disallowed element <text>
Removing disallowed element <image>
Removing disallowed element <polygon>

创建您的定制NodeTreeSanitizer是要走的路。在应用 HTML 清理时可以将文本添加到 DOM 的任何地方。这只是一个疏忽,没有做好卫生工作.appenedHTML()。要点是您显式声明哪些元素可以添加到 DOM 以及哪些属性可以添加到这些元素。这样做是为了确保不会错误地将恶意 HTML 或 JS 添加到页面中。

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

了解 Dart 1.11 的新appendHTML清理 的相关文章

随机推荐

  • 将用户区域设置包含到 Keycloak ID 令牌中

    我希望 Keycloak 1 4 0 将用户选择的区域设置包含到 ID 令牌中 我已经创建了一个用户属性映射器 它应该将区域设置属性映射到令牌 但它不起作用 有人知道怎么做这个吗 提前致谢 编辑 我从这堂课中学到了关于 Keycloak L
  • MVC 验证消息 - 本地化?

    我有个问题 主服务器和本地主机上的文件完全相同 但在本地主机中 我有我的母语的消息 例如 Pole Email jest wymagane 在主服务器上我有 The Email field is required 正如我所说 文件是完全相同
  • QML 渲染引擎:帧刷新事件

    性能考虑因素和建议文章说 作为应用程序开发人员 您必须努力让渲染 引擎实现一致的每秒 60 帧的刷新率 60 FPS 意味着每个帧之间大约有 16 毫秒 可以在其中进行处理的框架 其中包括处理 将绘制基元上传到图形硬件所需的 是否有事件或信
  • 法语翻译引发“ValueError('复数形式的无效标记:%s'%值)”

    我想处理我的网站的法语版本 我将 Django 2 2 与 i18n 一起使用 并且我已经在 settings py 中设置了语言环境变量 Internationalization https docs djangoproject com
  • 使用身份验证 cookie 打开 WebSocket 连接

    我有同样的问题Android 中的 Websocket 和 cookie 我一直在尝试按照第一条评论的建议解决这个问题 WebSocketClient URI serverUri 草稿协议Draft 映射httpHeaders int co
  • 在 Java 中打印 BufferedImage 的正确方法

    我想知道是否有正确的方法来打印BufferedImage在爪哇 基本上我已经创建了一个运行良好的照片处理程序 我可以保存图像等 但我真正的目标是将其发送到打印机软件 以便您可以选择要打印的页数和页面类型 所以我的简短问题是 如何将缓冲图像发
  • Object var 和 Object* var = new Object() 之间的区别

    如果我有一个名为 Object 的类 那么创建一个实例有什么区别 Object var and Object var new Object 这里你在堆栈上创建 var Object var 所以在上面的内容中 var是实际的对象 这里您在堆
  • Javascript 在页面上查找文本

    我需要在类似于以下内容的 HTML 上运行搜索和替换 我需要有 查找下一个 替换 和 全部替换 选项 诀窍是我需要运行 AJAX 请求替换值后 更新数据库中每个字段的值 我遇到的唯一麻烦是我不确定如何搜索内容 sheet并将这些值替换为用户
  • 使用 PHP 强制下载文件

    我的服务器上有一个 CSV 文件 如果用户单击链接 它应该下载 但它会在我的浏览器窗口中打开 我的代码如下所示 a href files csv example example csv Click here to download an e
  • 如何触发mapView:didSelectAnnotationView

    我是 iPhone 开发新手 我一直在阅读有关如何使谷歌地图注释标注窗口接受换行符的几个问题 我读过的每个教程都要求我启动mapView didSelectAnnotationView方法 但我不知道如何触发这个 我尝试过的事情包括 将方法
  • JUNG:按顺序放置树节点

    将节点添加到我的DelegateTree 它们在视觉上并不按照我添加它们的顺序出现 我一直在寻找解决方案 但还没有找到任何东西 有谁知道如何改变这个吗 提前致谢 EDIT 我的代码 Generate a visualization of t
  • 如何使文字环绕图像?

    我正在设计一个博客 我正在使用 CarrierWave 和 MiniMagic 进行图像文件上传 截至目前 每篇文章的顶部都会显示一张图片 我首先尝试将图片大小调整为矩形 但似乎即使我在调整大小下更改尺寸 图片也始终显示为正方形 现在 我正
  • 使用 EclipseLink 和 Hibernate (JPA2.1) 生成架构 - @ForeignKey 被忽略

    我正在测试 JPA2 1 和新的 模式生成 功能 为此 我在 HyperSQL 数据库下测试了两种实现 EclipseLink 2 5 2 M1 是参考实现 休眠4 3 我对实现没有任何偏好 甚至对性能也没有偏好 我测试了 EclipseL
  • Tomcat 7 更新后继续使用旧的 jsp

    我们 我公司的人员 不久前为 Tomcat 创建了一个应用程序 它使用 servlet 和 jsp 作为 GUI 我们刚刚完成了一次更新 其中一个 jsp 发生了很大的变化 但是 当我们在一台计算机上替换 war 文件时 它会继续使用旧的
  • 在 Magento 1.6.2 中登录/注销时如何从 top.links 中删除链接

    我进行了很好的搜索并找到了customer logged in and customer logged out标签 但我无法让它们正常工作 我确信这是我对它们的误解 我的目标是隐藏区块中的登录 帐户和结账链接top links当用户处于no
  • R(https) 中 getSymbols 函数使用错误 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 Running library quantmod getSymbols BSESN src yahoo 产生以下错误消息 Error in download file pas
  • 通过cmd上传和更新谷歌驱动器中的文件[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 是否有任何脚本可以让 Google Drive 每天自动上传 转换和更新 csv 文件 我按照 Google 站点上的 JDBC 上的脚本进行操作
  • 为什么 Stream Parallel() 不使用所有可用线程?

    我尝试跑100Sleep使用 Java8 1 8 0 172 Stream parallel 并行任务在自定义 ForkJoinPool 内提交 有 100 多个可用线程 每个任务都会sleep1秒 鉴于 100 个睡眠可以并行完成 我预计
  • HTML 选择。 Select2 + ng-click = 不起作用?

    我在用AngularJS and Select2创建一个漂亮的下拉菜单 我已经包括了ng click在 选择标签的 选项标签中 但是 ng click 在处于Select2
  • 了解 Dart 1.11 的新appendHTML清理

    我刚刚升级到 Dart 1 11 我不太明白发生了什么 appendHTML 我有一个非常大的项目 使用 dart 和 appendHTML 经常使用 我已经在这个应用程序上工作了一年多了 但现在没有任何效果了 我的控制台看起来像这样 Re