【问题标题】:Is there the a way to prevent HTML escaping inside a Polymer expression? [duplicate]有没有办法防止 HTML 在 Polymer 表达式中转义? [复制]
【发布时间】:2014-07-31 12:15:47
【问题描述】:

我的同事 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 dart-polymer


    【解决方案1】:

    更新

    Dart Polymer 1.0 的即用型元素是bwu-bind-html


    不,没有。这是故意的,因为它容易受到 XSS 攻击。 您可以做的是改用&lt;safe-html&gt; 之类的元素。

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

    【讨论】:

    • 感谢您的快速响应!
    猜你喜欢
    • 1970-01-01
    • 2021-12-03
    • 2019-02-15
    • 1970-01-01
    • 2020-04-06
    • 2017-12-01
    • 2019-06-28
    • 2020-10-10
    • 1970-01-01
    相关资源
    最近更新 更多