Я обновляю проект с Umbraco 7 до 8. Я заметил, что в 8 только некоторые определенные HTML-теги будут отображаться из макро-файла HTML. Например, если я использую следующий html в моем частичном представлении макроса: -

<div>
    <button>send</button>
    <input type='text' placeholder='some field' style='border: solid 1px #000' />
    <a href="https://www.google.com">some link</a>
</div>

В бэк-офисе HTML-код в DOM выглядит следующим образом:

enter image description here

Тег A и div отображаются хорошо, но кнопка и ввод удаляются. Я пытался использовать HTML.Raw безрезультатно.

Когда я публикую контент, он отлично отображает: - введите здесь описание изображения

Кто-нибудь сталкивался с этим в Umbraco 8?

0
Stephen Garside 8 Ноя 2019 в 10:09

1 ответ

Оказывается, теги и атрибуты HTML удаляются файлом Umbraco / lib / angular-sanitize / angular-sanitize.js.

Существует набор переменных белого списка, которые вы добавляете, чтобы добавить свои html-теги и атрибуты - затем бэк-офис их отобразит.

    // Safe Block Elements - HTML5
      var blockElements = extend({}, optionalEndTagBlockElements, stringToMap('address,article,' +
              'aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,' +
              'h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul,form')); //SG: added form

      // Inline Elements - HTML5
      var inlineElements = extend({}, optionalEndTagInlineElements, stringToMap('a,abbr,acronym,b,' +
              'bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,' +
            'samp,small,span,strike,strong,sub,sup,time,tt,u,var,input,button')); //SG: added input, button

  // Blocked Elements (will be stripped)
  var blockedElements = stringToMap('script'); //SG: Removed ,style

  var htmlAttrs = stringToMap('abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,' +
      'color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,' +
      'ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,' +
      'scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,' +
        'valign,value,vspace,width,action,method,autocomplete,enctype,style'); //SG: Added action,method,autocomplete,enctype,style

Вы можете узнать больше об этой «функции» umbraco 8 здесь - https://www.stephengarside.co.uk/blog/webdev/umbraco-8-removing-html-tags-and-attributes-from-macros- в бэк-офисе /

0
Stephen Garside 14 Ноя 2019 в 09:09