TinyMCE displaying html tags after saving and reloading the data
Asked Answered
F

6

7

I'm having a bit of an issue with TinyMCE.

After saving the contents of the editor and redisplaying it all the HTML tags are visible.

This is how I'm initializing the editor:

    tinyMCE.init({
      setup: function (ed) {
        ed.onSaveContent.add(function (ed, o) {
          o.content = o.content.replace(/&#39/g, '&apos');
        });
      },

      // General options
      mode: 'specific_textareas',
      theme: 'advanced',
      encoding: 'xml',
      entity_encoding: 'raw',
      height: '500',
      width: '100%',
      plugins: 'autolink,lists,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist,autosave',

      editor_selector: 'rich-text-area',
      editor_deselector: 'text-area',

      // Theme options
      theme_advanced_buttons1: 'save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect',
      theme_advanced_buttons2: 'cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor',
      theme_advanced_buttons3: 'tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen',

      theme_advanced_toolbar_location: 'top',
      theme_advanced_toolbar_align: 'left',
      theme_advanced_statusbar_location: 'bottom',
      theme_advanced_resizing: false,

      // Example content CSS (should be your site CSS)
      content_css: 'css/content.css',

      // Drop lists for link/image/media/template dialogs
      template_external_list_url: 'lists/template_list.js',
      external_link_list_url: 'lists/link_list.js',
      external_image_list_url: 'lists/image_list.js',
      media_external_list_url: 'lists/media_list.js',

      // Style formats
      style_formats: [
                    { title: 'Bold text', inline: 'b' },
                    { title: 'Red text', inline: 'span', styles: { color: '#ff0000'} },
                    { title: 'Red header', block: 'h1', styles: { color: '#ff0000'} },
                    { title: 'Example 1', inline: 'span', classes: 'example1' },
                    { title: 'Example 2', inline: 'span', classes: 'example2' },
                    { title: 'Table styles' },
                    { title: 'Table row 1', selector: 'tr', classes: 'tablerow1' }
                ]
    });

The data after its redisplayed:

enter image description here

The data as it is stored in the database:

<p>Testing</p>
Filigreed answered 29/7, 2012 at 3:12 Comment(0)
H
7

See http://www.tinymce.com/wiki.php/Configuration:encoding

Seems like you need to comment encoding: 'xml' on your configuration.

Hagiographer answered 29/7, 2012 at 3:23 Comment(3)
@Hagiographer I have the same problem in my vuejs application, which I use Laravel as backend. Any support on that?Beltran
@WosleyAlarico post a new question with simplified code and details of the problem.Hagiographer
@Hagiographer great idea, I just posted a new question. #50954123Beltran
F
3

Add this under init function:

tinyMCE.init( {
    forced_root_block: false, // Start tinyMCE without any paragraph tag
} )
First answered 16/8, 2013 at 7:26 Comment(0)
D
1

you can remove Html tags with the help of @Html.Raw()

<p>we are Arrivaler web and Mobile development</p>

index view

@Html.Raw(var.description) 

result:

we are Arrivaler web and Mobile development
Disjoint answered 6/8, 2017 at 20:3 Comment(0)
M
0

There is a option by which we get raw data from database which is stored in the form of html tags. html.raw is used for this purpose

In asp.net @html.raw(object) is the solution for this problem

Moldau answered 5/9, 2013 at 11:7 Comment(0)
R
0

Remember to decode the string that will be passed to tinyMCE.

Use html_entity_decode function in php.

Radioactive answered 11/7, 2022 at 17:33 Comment(0)
B
0

Instead of passing the view like this:

{{ $messageContent }}

You pass it like this:

{!! $messageContent !!}

That should solve the problem.

Bluejacket answered 18/7 at 2:48 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.