Froala htmlUntouched bug
by dswitzer
HTML
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/froala-editor/2.4.2/js/froala_editor.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/froala-editor/2.4.2/css/froala_editor.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/froala-editor/2.4.2/css/froala_style.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/froala-editor/2.4.2/js/plugins/code_view.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/froala-editor/2.4.2/css/plugins/code_view.min.css">
<form>
<textarea id="edit" name="content">
<p>Success or failure depends upon how you handle the
situation. The key is having a customer service culture that
welcomes all feedback and criticism. In fact, you must train
your customer service agents to ask for feedback beyond initial
complaints-and not be afraid to do so.</p>
<ul>
<li><b>Be proactive.</b> Consider immediately reaching out to
customers when you know about a problem, even before they
call. This is not the time to think about minimizing costs.
Instead, consider it an investment toward winning your
customers' trust and future business.<br/>
<br/>
</li>
<li><b>Create a strong first line of defense.</b> If there is
a problem with your products or service, the customer service
department will be the first to know. Coach your agents with
a standard script so there is always a consistent message in
difficult situations. Every phone call with an upset customer
should begin with a heartfelt and sincere apology, taking
responsibility for the issue at hand.<br/>
<br/>
...
JavaScript
var standardToolbar = ['paragraphFormat', '|', 'bold', 'italic', 'underline', 'strikeThrough', 'subscript', 'superscript', '|', 'align', 'formatOL', 'formatUL', 'outdent', 'indent', 'quote', '|', 'insertLink', 'insertTable', 'insertHR', '|', 'clearFormatting'];
$('#edit').froalaEditor({
placeholderText: 'Enter\x20the\x20article\x20text\x20here...'
, toolbarButtons: standardToolbar
, toolbarButtonsMD: standardToolbar
, toolbarButtonsSM: standardToolbar
, toolbarButtonsXS: standardToolbar
, useClasses: true
, heightMin: 350
, zIndex: 9995
, editorClass: 'knowledge-text'
, htmlAllowComments: false
, htmlAllowedTags: ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'blockquote', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'figcaption', 'figure', 'footer', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'hr', 'i', 'img', 'ins', 'kbd', 'li', 'main', 'map', 'mark', 'menu', 'menuitem', 'meter', 'nav', 'ol', 'output', 'p', 'pre', 'progress', 'queue', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'small', 'source', 'span', 'strike', 'strong', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr']
, quickInsertButtons: ['image', 'table', 'ul', 'ol', 'hr']
, quickInsertTags: ['p', 'div', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'pre', 'blockquote']
, htmlUntouched: true
, linkEditButtons: ['linkOpen', 'linkEdit', 'linkRemove']
, linkStyles: {}
, tableEditButtons: ['tableRemove', '|', 'tableRows', 'tableColumns', 'tableCells', '|', 'tableCellVerticalAlign', 'tableCellHorizontalAlign']
, tableCellStyles: {}
, imageEditButtons: ['imageDisplay', 'imageAlign', 'imageAlt', '|', 'imageLink', 'linkOpen', 'linkEdit', 'linkRemove', '|', 'imageRemove']
, enter: $.FroalaEditor.ENTER_P
, paragraphFormatSelection: true
, fontSizeSelection: true
, paragraphFormat:...