rajani chowdhary
rajani chowdhary

Reputation: 175

Uncaught TypeError: Cannot read property 'add' of undefined tinymce version 4.x

I am using tiny mce 4.x version, this is the code I wrote in html file

 <script type="text/javascript" src="tinymce/tinymce.min.js"></script>
 <script>
   tinymce.init({
    selector: "textarea#elm1",
    theme: "modern",
    width: 500,
    height: 300,
    plugins: [
         "advlist autolink link image lists charmap print preview hr anchor pagebreak spellchecker",
         "searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking",
         "save table contextmenu directionality emoticons template paste textcolor"
   ],
      content_css: "css/content.css",
      toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | print preview media fullpage | forecolor backcolor emoticons", 
       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'}
      ],
     setup : function(ed) {
        ed.onBeforeRenderUI.add(function(ed, cm) {
         console.log('add function called');
       });
       ed.onLoadContent.add(function(ed, o) {
           console.log('add function called');
      });
}


}); 

<body>
    <textarea id="elm1" name="area"></textarea>
</body>

I am getting the error

Uncaught TypeError: Cannot read property 'add' of undefined when calling onBeforeRenderUI.add() method

. Please help me as how to resolve this issue. Thank You.

Upvotes: 1

Views: 3125

Answers (1)

Thariama
Thariama

Reputation: 50832

Thanks for sharing a solution that worked for you. But to be correct: The solution to your problem is to use the tinymce 4 code (onLoadContent is only working with tinymce3). The correct way to use this here is:

 setup : function(ed) {
    ed.on('BeforeRenderUI', function(e) {
     console.log('BeforeRenderUI function called');
   });
   ed.on('LoadContent', function(e) {
       console.log('LoadContent function called');
  });

Upvotes: 1

Related Questions