首頁>Program>source

我正在使用polymer-jsonp執行JSONP請求,但是响應有時包含html。

例如,假設post.content為 "<strong>Foo</strong> bar" ,如何顯示{{post.content}}這樣的 "Foo" 粗體?

<polymer-element name="feed-element" attributes="">
  <template>
    <template repeat="{{post in posts.feed.entry}}">
      <p>{{post.content}}</p>
    </template>
    <polymer-jsonp url="url" response="{{posts}}"></polymer-jsonp>
  </template>
  <script>
    Polymer('feed-element', {
      created: function() { },
      attached: function() { },
      detached: function() { },
      attributeChanged: function(attrName, oldVal, newVal) { }
    });
  </script>
</polymer-element>
最新回復
  • 5月前
    1 #

    聚合物不会通過資料繫結標記未轉義的HTML,因為它成為XSS攻击的漏洞。

    有關在有限的情况下標記HTML或允许自定義過濾的讨論正在进行中,但這尚未在資料層實現。

    現在可以使用附加的自定義元素来做您想做的事情,但是再次提醒您,如果將不受信任的HTML呈現到頁面中,則可能会發生不好的事情。

    以下是顯示此技術的示例:

    http://jsbin.com/durajiwo/1/edit

  • 5月前
    2 #

    對於那些尋求聚合物1.0的人

    <dom-module id="html-echo">
      <style>
        :host {
          display: block;
        }
      </style>
      <template>
      </template>
    </dom-module>
    <script>
      (function () {
        Polymer({
          is: 'html-echo',
          properties: {
            html: {
              type: String,
              observer: '_htmlChanged'
            }
          },
          _htmlChanged: function (neo) {
            // WARNING: potential XSS vulnerability if `html` comes from an untrusted source
            this.innerHTML = neo;
          }
        });
      })();
    </script>
    

  • 5月前
    3 #

    如果確定要執行此操作,請使用 innerHTML

    _renderHtml: function(html) {
      this.$.dynamicHtmlContainer.innerHTML = html;
    }
    

    或者動態添加影子球child:

    _renderHtml: function(html) {
      var div = document.createElement('div');
      div.innerHTML = html;
      Polymer.dom(this).appendChild(div);
    }
    

    我认為 Polymer.dom 不過已在Polymer 2.0中删除。

  • Azure AD B2C應使用哪種圖形API
  • 如何在C ++中使用setprecision