| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 | 
							- <!DOCTYPE html>
 
- <html>
 
- <head>
 
-   <meta charset="utf-8">
 
-   <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
 
-   <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.4.0/css/font-awesome.min.css">
 
-   <link rel="stylesheet" href="../../css/froala_editor.css">
 
-   <link rel="stylesheet" href="../../css/froala_style.css">
 
-   <style>
 
-     body {
 
-       text-align: center;
 
-     }
 
-     section {
 
-       width: 81%;
 
-       margin: auto;
 
-       text-align: left;
 
-     }
 
-     .custom-layer {
 
-       text-align: center;
 
-       padding: 10px;
 
-     }
 
-   </style>
 
- </head>
 
- <body>
 
-   <section id="editor">
 
-     <div id='edit' style="margin-top: 30px;">
 
-       <h1>Custom Popup example</h1>
 
-       <p>This is an example of how to create your own popup.</p>
 
-     </div>
 
-   </section>
 
-   <script type="text/javascript" src="../../js/froala_editor.min.js"></script>
 
-   <script>
 
-     // Define popup template.
 
-     Object.assign(FroalaEditor.POPUP_TEMPLATES, {
 
-       'customPlugin.popup': '[_BUTTONS_][_CUSTOM_LAYER_]'
 
-     })
 
-     // Define popup buttons.
 
-     Object.assign(FroalaEditor.DEFAULTS, {
 
-       popupButtons: ['popupClose', '|', 'popupButton1', 'popupButton2'],
 
-     })
 
-     // The custom popup is defined inside a plugin (new or existing).
 
-     FroalaEditor.PLUGINS.customPlugin = function (editor) {
 
-       // Create custom popup.
 
-       function initPopup() {
 
-         // Load popup template.
 
-         var template = FroalaEditor.POPUP_TEMPLATES.customPopup
 
-         if (typeof template == 'function') template = template.apply(editor)
 
-         // Popup buttons.
 
-         var popup_buttons = ''
 
-         // Create the list of buttons.
 
-         if (editor.opts.popupButtons.length > 1) {
 
-           popup_buttons += '<div class="fr-buttons fr-tabs">'
 
-           popup_buttons += editor.button.buildList(editor.opts.popupButtons)
 
-           popup_buttons += '</div>'
 
-         }
 
-         // Load popup template.
 
-         var template = {
 
-           buttons: popup_buttons,
 
-           custom_layer: '<div class="custom-layer">Hello World!</div>'
 
-         }
 
-         // Create popup.
 
-         var $popup = editor.popups.create('customPlugin.popup', template)
 
-         return $popup
 
-       }
 
-       // Show the popup
 
-       function showPopup() {
 
-         // Get the popup object defined above.
 
-         var $popup = editor.popups.get('customPlugin.popup')
 
-         // If popup doesn't exist then create it.
 
-         // To improve performance it is best to create the popup when it is first needed
 
-         // and not when the editor is initialized.
 
-         if (!$popup) $popup = initPopup()
 
-         // Set the editor toolbar as the popup's container.
 
-         editor.popups.setContainer('customPlugin.popup', editor.$tb)
 
-         // If the editor is not displayed when a toolbar button is pressed, then set BODY as the popup's container.
 
-         // editor.popups.setContainer('customPlugin.popup', $('body'));
 
-         // Trigger refresh for the popup.
 
-         // editor.popups.refresh('customPlugin.popup');
 
-         // This custom popup is opened by pressing a button from the editor's toolbar.
 
-         // Get the button's object in order to place the popup relative to it.
 
-         var $btn = editor.$tb.find('.fr-command[data-cmd="myButton"]')
 
-         // Compute the popup's position.
 
-         var left = $btn.offset().left
 
-         var top = $btn.offset().top + (editor.opts.toolbarBottom ? 10 : $btn.outerHeight() - 10)
 
-         // Show the custom popup.
 
-         // The button's outerHeight is required in case the popup needs to be displayed above it.
 
-         editor.popups.show('customPlugin.popup', left, top, $btn.outerHeight())
 
-       }
 
-       // Hide the custom popup.
 
-       function hidePopup() {
 
-         editor.popups.hide('customPlugin.popup')
 
-       }
 
-       // Methods visible outside the plugin.
 
-       return {
 
-         showPopup: showPopup,
 
-         hidePopup: hidePopup
 
-       }
 
-     }
 
-     // Define an icon and command for the button that opens the custom popup.
 
-     FroalaEditor.DefineIcon('buttonIcon', { NAME: 'star', SVG_KEY: 'star' })
 
-     FroalaEditor.RegisterCommand('myButton', {
 
-       title: 'Show Popup',
 
-       icon: 'buttonIcon',
 
-       undo: false,
 
-       focus: false,
 
-       popup: true,
 
-       // Buttons which are included in the editor toolbar should have the plugin property set.
 
-       plugin: 'customPlugin',
 
-       callback: function () {
 
-         if (!this.popups.isVisible('customPlugin.popup')) {
 
-           this.customPlugin.showPopup();
 
-         }
 
-         else {
 
-           if (this.$el.find('.fr-marker')) {
 
-             this.events.disableBlur()
 
-             this.selection.restore()
 
-           }
 
-           this.popups.hide('customPlugin.popup')
 
-         }
 
-       }
 
-     })
 
-     // Define custom popup close button icon and command.
 
-     FroalaEditor.DefineIcon('popupClose', { NAME: 'times', SVG_KEY: 'close' });
 
-     FroalaEditor.RegisterCommand('popupClose', {
 
-       title: 'Close',
 
-       undo: false,
 
-       focus: false,
 
-       callback: function () {
 
-         this.customPlugin.hidePopup();
 
-       }
 
-     })
 
-     // Define custom popup 1.
 
-     FroalaEditor.DefineIcon('popupButton1', { NAME: 'bell-o', SVG_KEY: 'anchors' });
 
-     FroalaEditor.RegisterCommand('popupButton1', {
 
-       title: 'Button 1',
 
-       undo: false,
 
-       focus: false,
 
-       callback: function () {
 
-         alert("popupButton1 was pressed");
 
-       }
 
-     })
 
-     // Define custom popup 2.
 
-     FroalaEditor.DefineIcon('popupButton2', { NAME: 'bullhorn', SVG_KEY: 'tags' });
 
-     FroalaEditor.RegisterCommand('popupButton2', {
 
-       title: 'Button 2',
 
-       undo: false,
 
-       focus: false,
 
-       callback: function () {
 
-         alert("popupButton2")
 
-       }
 
-     })
 
-       new FroalaEditor("#edit", {
 
-         toolbarButtons: [ ['bold', 'italic', 'underline', 'strikeThrough', 'myButton'], ['undo', 'redo'] ],
 
-         pluginsEnabled: ['customPlugin']
 
-       })
 
-   </script>
 
- </body>
 
- </html>
 
 
  |