AmourSpirit icon

working example of tinymce in lightbox

AmourSpirit | PRO | 12/25/15 04:58:00 AM UTC | 0 ⭐ | 666 👁️ | Never ⏰ | []
HTML 5 |

0 B

|

None

|

0 👍

/

0 👎

 <!DOCTYPE html>
<html>  
<head>
    <meta charset="UTF-8">
    <title>Lightbox Tinymce Example</title>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tinymce/4.3.2/tinymce.min.js"></script>
    <link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.css"></link>
    <script type="text/javascript">
        var gmFullscreen = false;
      tinymce.init({
          selector: 'textarea#gminput',
          init_instance_callback : "myCustomInitInstance",
           height : 260,
          inline: false,
          browser_spellcheck: true,
          plugins: "",
          menubar: "edit insert format view tools table",
          toolbar1: 'mysave myexit insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link',
          toolbar2: 'fullscreen print preview media | forecolor backcolor | insertdatetime table searchreplace code',
          external_plugins:{
              'fullscreen': 'https://cdnjs.cloudflare.com/ajax/libs/tinymce/4.3.2/plugins/fullscreen/plugin.min.js',
              'textcolor': 'https://cdnjs.cloudflare.com/ajax/libs/tinymce/4.3.2/plugins/textcolor/plugin.min.js',
              'nonbreaking': 'https://cdnjs.cloudflare.com/ajax/libs/tinymce/4.3.2/plugins/nonbreaking/plugin.min.js',
              'insertdatetime': 'https://cdnjs.cloudflare.com/ajax/libs/tinymce/4.3.2/plugins/insertdatetime/plugin.min.js',
              'code': 'https://cdnjs.cloudflare.com/ajax/libs/tinymce/4.3.2/plugins/code/plugin.min.js',
              'hr': 'https://cdnjs.cloudflare.com/ajax/libs/tinymce/4.3.2/plugins/hr/plugin.min.js',
              'searchreplace': 'https://cdnjs.cloudflare.com/ajax/libs/tinymce/4.3.2/plugins/searchreplace/plugin.min.js',
              'table': 'https://cdnjs.cloudflare.com/ajax/libs/tinymce/4.3.2/plugins/table/plugin.min.js'
        },
          setup : function(ed) {
              // Add a custom button
              ed.on('FullscreenStateChanged', function(e) {
                  //console.log('FullscreenStateChanged event', e);
                  gmFullscreen = e.state;
              });
            ed.addButton('mysave', {
                title : 'Save',
                onclick : function() {
                    //jQuery('.lightbox_save_close').trigger('click');
                    save_box();
                }
            
            });
            ed.addButton('myexit', {
                title : 'Close',
                onclick : function() {
                    jQuery('.gmclose').trigger('click');
            }
            });
              
        }
});
        function myCustomInitInstance(inst) {
            // add save icon to button
            jQuery('.mce-i-mysave').addClass('fi-save');
            // add x icon to button
            jQuery('.mce-i-myexit').addClass('fi-x');
            //alert("Editor: " + inst.id + " is now initialized.");
        }
  </script>
    
    <style type="text/css">
 
        body
        {
            font-family: Helvetica, Arial;
        }
 
        .gmbackdrop
        {
            position:absolute;
            top:0px;
            left:0px;
            width:100%;
            height:100%;
            background:#000;
            opacity: .0;
            filter:alpha(opacity=0);
            z-index:50;
            display:none;
        }
 
 
        .gmbox
        {
            position:absolute;
            top:20%;
            left:30%;
            width:650px;
            height:450px;
            background:#ffffff;
            z-index:51;
            padding:10px;
            -webkit-border-radius: 5px;
            -moz-border-radius: 5px;
            border-radius: 5px;
            -moz-box-shadow:0px 0px 5px #444444;
            -webkit-box-shadow:0px 0px 5px #444444;
            box-shadow:0px 0px 5px #444444;
            display:none;
        }
 
        .gmclose
        {
            float:right;
            margin-right:6px;
            cursor:pointer;
        }
 
        </style>
        
<script type="text/javascript">
    
    jQuery(document).ready(function(){
        
        
        jQuery('.lightbox').click(function() {
            // if editor has been left in full screeen then
            // set it back to lightbox
            if(gmFullscreen)
            {
                tinyMCE.get('gminput').execCommand('mceFullScreen');    
            }
            tinymce.get('gminput').setContent(jQuery('.note').html());
            jQuery('.gmbackdrop, .gmbox').animate({'opacity':'.50'}, 300, 'linear');
            jQuery('.gmbox').animate({'opacity':'1.00'}, 300, 'linear');
            jQuery('.gmbackdrop, .gmbox').css('display', 'block');
            
            
            // write out current tinymce editor to the console
            // useful to figure out what id tinymce has registered
            //for (var i = 0; i < tinymce.editors.length; i++){console.log("TinyMce Editor id:", tinymce.editors[i].id);}   
        });
        
        jQuery('.gmclose').click(function(){
            close_box();
        });
    });
 
    function close_box()
    {
        if (confirm('Are you sure you want to close this editor?')) {
            // Save it!
            jQuery('.gmbackdrop, .gmbox').animate({'opacity':'0'}, 300, 'linear', function(){
                jQuery('.gmbackdrop, .gmbox').css('display', 'none');
            });
            jQuery('textarea#gminput').val(''); // clean up textarea
            tinymce.get('gminput').setContent(''); // clean up tinymce
            return true;
        }
        return false;
    }
    
    function save_box() {
        // var strTxt = jQuery('textarea#gminput').val().toString();
        var strTxt = tinymce.get('gminput').getContent();
        jQuery('.gmbackdrop, .gmbox').animate({'opacity':'0'}, 300, 'linear', function(){
            jQuery('.gmbackdrop, .gmbox').css('display', 'none');
 
        });
        jQuery('.note').html(strTxt);
        jQuery('textarea#gminput').val(''); // clean up textarea
        tinymce.get('gminput').setContent(''); // clean up tinymce
    }
 
    
</script>
</head>
<body>
    <h1>Lightbox Tinymce Example</h1>
    <i class="fi-star"></i>
    <a href="#" class="lightbox">Open Lightbox</a>
    <div class="note"><p style="color:green;">Hello world</p></div>
 
    <div class="gmbackdrop"></div>
    <div class="gmbox"><div class="gmclose"><i class="fi-x"></i></div>This is the lightbox!!!<div>
         <textarea id="gminput" rows="18" cols="68"></textarea> 
        </div>
    </div>
</body>
</html>

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎