dart - 有没有办法防止 HTML 在 Polymer 表达式中转义?

标签 dart polymer dart-polymer

这个问题在这里已经有了答案:





How can I bind a text which contains url as html

(1 个回答)


7年前关闭。




我的同事 Patrick 和我目前正在将一个自动完成组件从 Web UI 转换为 Polymer.dart。在 Web UI 中,我们为自动完成提供了一个 HTML 渲染列表,以便让程序员有机会对结果进行样式设置。我们根据输入的值过滤列表并显示匹配结果。

您建议如何在 Polymer.dart 中实现相同的行为?我们应该以完全不同的方式处理这个问题吗?

旧的 Web UI 代码:

<template iterate="entry in filteredEntries">
  <li class="b-autocomplete-results-li">{{ entry.sanitizedHtml }}</li>
</template>

一个条目的类:
class AutocompleteEntry {

  final String id;
  final String searchableText;
  final Element _element;

  AutocompleteEntry(this.id, this.searchableText, this._element) {
    // remove the data-id and data-text since we don't need them in the html
    _element.dataset.remove('text');
    _element.dataset.remove('id');
  }

  get sanitizedHtml {
    var validator = new NodeValidatorBuilder()..allowHtml5();
    var documentFragment = document.body.createFragment(_element.outerHtml, validator: validator);
    return documentFragment;
  }
}

最佳答案

更新

Dart Polymer 1.0 的现成元素是 bwu-bind-html

不,没有。这是故意的,因为它容易受到 XSS 攻击。
你可以做的是使用像 <safe-html> 这样的元素。反而。

我对这个问题的回答 HTML Tags Within Internationalized Strings In Polymer.dart显示完整的源代码。

关于dart - 有没有办法防止 HTML 在 Polymer 表达式中转义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25058638/

相关文章:

dart - 如何解决运行 "flutter packages get"

data-binding - 使用 polymer 1.0 在两个 polymer 元素之间进行数据绑定(bind)

flutter - 类型 'GeoPoint' 不是 flutter firestore 中类型 'String' 的子类型

arrays - 如何从渲染列表中访问对象键?

javascript - 在Polymer回调中设置数组项属性值

data-binding - 如何在 polymer 中与 meteor 进行数据绑定(bind)

dart - Dart ,聚合物生成失败,找不到聚合物/polymer.dart吗?

带有聚合物可观察场的 Dart mixin 可能吗?

dart - 如何从 Angular.Dart 组件内部引用聚合物组件

flutter - 有没有办法在容器中包含多个子代?